【问题标题】:java - hibernate - convert date from one format to anotherjava - hibernate - 将日期从一种格式转换为另一种格式
【发布时间】:2015-04-23 21:55:09
【问题描述】:

我正在尝试将日期从一种格式转换为另一种格式,输入的日期采用以下格式:'mm-dd-yyyy' to 'yyyy-mm-dd'。

我从网页收到了“mm-dd-yyyy”格式的日期,当我使用休眠将该日期插入 mysql 时,日期更改为某个匿名值。

请帮忙!!! {

import java.io.*;
import java.text.*;
import java.util.*;

class test{
public static void main(String...s)throws Exception{
Date date ;
String datestr;
DateFormat dateFormat1 = new SimpleDateFormat("mm-dd-yyyy");
DateFormat dateFormat2 = new SimpleDateFormat("yyyy-mm-dd");

date = dateFormat1.parse("01-01-2015");
datestr = dateFormat1.format(date);

System.out.println(date);
System.out.println(datestr);

date = dateFormat2.parse(datestr);
datestr = dateFormat2.format(date);

System.out.println(date);
System.out.println(datestr);
}
}

【问题讨论】:

    标签: java mysql hibernate date datetime


    【解决方案1】:

    你可以这样试试;

            DateFormat originalFormat = new SimpleDateFormat("MM-dd-yyyy", Locale.ENGLISH);
            DateFormat targetFormat = new SimpleDateFormat("yyyy-MM-dd");
            Date date = originalFormat.parse("01-21-2013");
            String formattedDate = targetFormat.format(date); 
            System.out.println(formattedDate);
    

    对于日期类型的结果;

        DateFormat originalFormat = new SimpleDateFormat("mm-dd-yyyy", Locale.ENGLISH);
        DateFormat targetFormat = new SimpleDateFormat("yyyy-mm-dd");
        Date date = originalFormat.parse("01-21-2013");
        String formattedDate = targetFormat.format(date); 
        java.util.Date dtt = targetFormat.parse(formattedDate);
        java.sql.Date ds = new java.sql.Date(dtt.getTime());
        System.out.println(ds);
        System.out.println(dtt);
        System.out.println(formattedDate);
    

    结束输出是;

    2013-01-21
    Mon Jan 21 00:01:00 EET 2013
    2013-01-21
    

    【讨论】:

    • 非常感谢,但在这里我将再次获取字符串中的日期,我想要日期类型的字符串
    • 你能试试最后一个吗,我正在处理 java.sql.Date 类型
    • 它起作用了,但是当我将此输入用于文档日期时:2013-11-30 日期转换为:2013-01-30
    • 哦,对不起,你必须使用 MM 而不是 mm,我编辑了答案。
    • 是的,它有效,我改变了它,MM,它有效,非常感谢:D
    【解决方案2】:

    你可以使用下面的代码 sn-p

     public static String formatDate (String date, String initDateFormat, String endDateFormat) throws ParseException {
    
        Date initDate = new SimpleDateFormat(initDateFormat).parse(date);
        SimpleDateFormat formatter = new SimpleDateFormat(endDateFormat);
        String parsedDate = formatter.format(initDate);
    
        return parsedDate;
    }
    

    【讨论】:

    • 是的,它会给我一个'mm-dd-yyyy'格式的字符串,我知道如何将字符串格式转换为日期,但是如何转换这个日期是'mm- dd-yyyy' 格式到 mysql 想要的 'yyyy-mm-dd' 日期格式
    • @Furquan 现在只需查看 kmy 的最新答案
    • 是的,但是我想要 DATE 类型对象中的日期,有可能还是我只是在浪费时间
    • @Furquan 你可能会看到类似问题的答案here
    【解决方案3】:
    Date initDate = new SimpleDateFormat("yyyy-MM-dd").parse("2015-03-05");
    System.out.println("initDate == "+initDate);
    

    输出 ==>> initDate == Thu Mar 05 00:00:00 ICT 2015

    【讨论】:

      【解决方案4】:

      在 HQL 中简单的 SQL 函数工作:

      DATE_FORMAT(DATE,'%d-%m-%Y') 
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-11-23
        • 2017-08-27
        相关资源
        最近更新 更多