我的输入字符串是PM时间:
log(start);
// Sunday, January 09, 2011 6:30:00 PM
我正在使用Joda Time's pattern syntax来解析DateTime:
DateTimeFormatter parser1 =
DateTimeFormat.forPattern("EEEE, MMMM dd, yyyy H:mm:ss aa");
DateTime startTime = parser1.parseDateTime(start);
那么,为什么我的输出字符串是AM?
log(parser1.print(startTime));
// Sunday, January 09, 2011 6:30:00 AM
答案 0 :(得分:26)
您的解析字符串包含“H”,它告诉您的解析器将该值解释为24小时制(0..23)。所以6被解释为当天的第6小时。在早上。打印的AM是因为解析的整体日期被认为是在早上。
如果您想使用12小时制,请将格式字符串更改为:
"EEEE, MMMM dd, yyyy h:mm:ss aa".
'h'将被解释为一天中的12小时小时(1..12)
答案 1 :(得分:2)
H会给你每天0-23的值,所以也许它正在读取它,看到6,并确定它必须是AM?
尝试使用小写h来获得当天的时钟。