我搜索了这个问题,但发现只是从String更改为Date,然后将Date显示为String。 我有一个要求,我以字符串格式接收日期然后我必须在Date对象中解析它并输入Database.But每当我将String转换为Date它给我错误的输出。请建议。提前致谢。
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.
输出: 1月28日星期六00:09:00 GMT 2012(这是不正确的!!)。我想作为2012-09-28 11:00:00
答案 0 :(得分:6)
您的格式字符串错误。 yyyy-mm-dd hh:mm:ss
基本上是说“年 - 小时 - 天数:分钟:秒”,我很确定你不想要它。
你想要
String oldFormat = "yyyy-MM-dd hh:mm:ss";
查看SimpleDateFormat文档以获取更多信息
答案 1 :(得分: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.
答案 2 :(得分:1)
尝试将oldFormat更改为
String oldFormat = "yyyy-MM-dd hh:mm:ss";
其中MM是大写字母。
答案 3 :(得分:1)
我想第二行中的oldFormat变量应该是
oldFormat = "yyyy-MM-dd HH:mm:ss"; // hours counted 0~23
或
oldFormat = "yyyy-MM-dd hh:mm:ss"; // hours counted 0~11
答案 4 :(得分:0)