0

如何更改以下日期的日期格式

Thu May 17 00:00:00 GMT+05:30 2012

2012-05-17 00:00:00

我需要它作为日期而不是字符串。我在用

new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse("")

但它没有给出结果。实际上,我正在明智地存储值。因此,当有人再次输入同一日期的数据时,它应该覆盖。如果我将它作为日期对象传递给休眠查询,它会给出结果。但不总是。在少数情况下,它会再次插入,即插入同一日期的重复数据。在输入之前,我正在添加一种方法来检查该日期是否存在数据。criteria.add(Restrictions.eq("date", date));

4

4 回答 4

1
String str ="Thu May 17 00:00:00 GMT+05:30 2012";

        DateFormat old_format = new SimpleDateFormat("EEE MMM dd hh:mm:ss z yyyy");
        Date newDate = null;
        try {
            newDate = old_format.parse(str);
        } catch (ParseException e) {
            e.printStackTrace();
        }

        DateFormat new_format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
        String date = new_format.format(newDate);

        System.out.println("==>"+date);
于 2012-05-16T10:47:59.167 回答
1

您根本不应该在这里进行字符串操作。您在评论中说它是数据库中的日期/时间字段,那么为什么您的代码中会涉及任何字符串转换?

将 JDBC 中的参数指定为java.sql.Datejava.sql.Timestamp其他 - 然后也以这种方式获取它们。不要进行字符串转换。忽略在工具中查询数据库时发生的任何格式 - 根本不要认为结果具有“格式” - 它们只是日期。

于 2012-05-18T12:40:10.060 回答
0

像现在一样做,但parse("")改为format(theDate)

theDate作为您要格式化的 Date 对象

请参阅 http://docs.oracle.com/javase/6/docs/api/java/text/DateFormat.html#format(java.util.Date )

于 2012-05-16T10:47:34.347 回答
0
String date = "Thu May 17 00:00:00 GMT+05:30 2012";
String oldFormat = "EEE MMM dd hh:mm:ss z yyyy";
String newFormat = "yyyy-MM-dd HH:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
SimpleDateFormat sdf2 = new SimpleDateFormat(newFormat);
sdf2.format(sdf1.parse(date))
于 2012-05-21T11:14:03.003 回答