0

我搜索了这个问题,但发现只从字符串更改为日期,然后将日期显示为字符串。我有一个要求,我收到字符串格式的日期,然后我必须在日期对象中解析它并输入数据库。但是每当我将字符串转换为日期时,它都会给我错误的输出。请建议。提前致谢。

String subscribedDate="2012-09-28 11:00:00";
String oldFormat = "yyyy-mm-dd hh:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
Date dates=sdf1.parse(subscribedDate);
System.out.println(dates);
//code for entering dates in database. 

输出:2012 年 1 月 28 日星期六 00:09:00 GMT(这是不正确的!!)。我想要 2012-09-28 11:00:00

4

5 回答 5

6

您的格式字符串错误。 yyyy-mm-dd hh:mm:ss基本上是在说“年-分钟-天小时:分钟:秒”,我很确定您不想要。

你要

String oldFormat = "yyyy-MM-dd hh:mm:ss";

查看SimpleDateFormat文档以获取更多信息

于 2012-10-02T11:16:42.773 回答
3

首先,月份字段使用MM而不是mm分钟来表示。

其次,格式化程序可用于以所需格式打印日期。

String subscribedDate="2012-09-28 11:00:00";
String oldFormat = "yyyy-MM-dd hh:mm:ss";
SimpleDateFormat sdf1 = new SimpleDateFormat(oldFormat);
Date dates=sdf1.parse(subscribedDate);
System.out.println(sdf1.format(dates));
// code for entering dates in database. 
于 2012-10-02T11:17:01.760 回答
1

尝试将 oldFormat 更改为

String oldFormat = "yyyy-MM-dd hh:mm:ss";

其中 MM 是大写字母。

于 2012-10-02T11:16:00.913 回答
1

我想第二行中的 oldFormat 变量应该是

oldFormat = "yyyy-MM-dd HH:mm:ss"; // hours counted 0~23

或者

oldFormat = "yyyy-MM-dd hh:mm:ss"; // hours counted 0~11
于 2012-10-02T11:20:04.827 回答
0

试试这个:

        String oldFormat = "yyyy-MM-dd hh:mm:ss";

请参阅文档以了解原因。

于 2012-10-02T11:16:30.367 回答