java - hibernate - 将日期从一种格式转换为另一种格式

问题描述 投票:0回答:5

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

我从网页收到“mm-dd-yyyy”格式的日期,当我使用 hibernate 将此日期插入 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
5个回答
2
投票

你可以这样尝试;

        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

0
投票

您可以使用下面的代码片段

 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;
}

0
投票
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


0
投票

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

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

0
投票

我们可以使用java 8来做到。

DateTimeFormatter formFormatter = DateTimeFormatter.ofPattern("MM-dd-yyyy"");
DateTimeFormatter toFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"");
ZonedDateTime zonedDateTime = ZonedDateTime.parse("01-21-2013",formFormatter);
String requiredDate = zonedDateTime.format(zonedDateTime);

在解析时我们也可以使用 zoneid 。

 ZoneId id = ZoneId.of("GMT");
 ZonedDateTime zonedDateTime = ZonedDateTime.parse("01-21-2013",formFormatter.withZone(id));
© www.soinside.com 2019 - 2024. All rights reserved.