当时间在第 12 小时(下午 12-1 点)时,24 小时日期格式的解析无法按预期工作
Parsing of 24hr date format doesn't work as expected when time is in 12th hr(12-1 PM)
我正在使用以下代码将文本解析为日期数据类型并获取相应的长值。
import java.text.DateFormat
import java.text.SimpleDateFormat
String TIMEZONE_DATE_FORMAT = "yyyy-MM-dd'T'hh:mm:ssZ";
DateFormat df = new SimpleDateFormat(TIMEZONE_DATE_FORMAT);
Date date = df.parse("2015-09-21T12:48:00+0000");
date.getTime();
在上述情况下,我得到的 getTime()
值为:1442796480000
即 12:48 AM(GMT)
。但我期待 12:48 PM
作为 24 小时格式。
当我对文本日期使用相同的代码时:2015-09-21T13:48:00+0000
,我得到 1:48 PM,这是正确的。
我使用的日期格式有误吗?
试试这个:
Date date = new Date();
date.setHours(date.getHours() + 8);
System.out.println(date);
SimpleDateFormat simpDate;
simpDate = new SimpleDateFormat("kk:mm:ss");
System.out.println(simpDate.format(date));
对我来说效果很好! :)
24 小时模式应为 HH 而不是 hh
我正在使用以下代码将文本解析为日期数据类型并获取相应的长值。
import java.text.DateFormat
import java.text.SimpleDateFormat
String TIMEZONE_DATE_FORMAT = "yyyy-MM-dd'T'hh:mm:ssZ";
DateFormat df = new SimpleDateFormat(TIMEZONE_DATE_FORMAT);
Date date = df.parse("2015-09-21T12:48:00+0000");
date.getTime();
在上述情况下,我得到的 getTime()
值为:1442796480000
即 12:48 AM(GMT)
。但我期待 12:48 PM
作为 24 小时格式。
当我对文本日期使用相同的代码时:2015-09-21T13:48:00+0000
,我得到 1:48 PM,这是正确的。
我使用的日期格式有误吗?
试试这个:
Date date = new Date();
date.setHours(date.getHours() + 8);
System.out.println(date);
SimpleDateFormat simpDate;
simpDate = new SimpleDateFormat("kk:mm:ss");
System.out.println(simpDate.format(date));
对我来说效果很好! :)
24 小时模式应为 HH 而不是 hh