【发布时间】:2015-08-20 11:00:03
【问题描述】:
我正在尝试将字符串解析为日期,它会在时间错误的情况下给我正确的日期。
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm aaa");
try {
Date date = formatter.parse("2015-08-20 05:00 AM");
Log.e("date", date+""); // Logcat printing Thu Aug 20 00:00:00 GMT+05:30 2015
} catch (ParseException e) {
Log.e("Error",e.toString());
}
正如您所看到的,每次解析日期时间都显示00:00:00
我要的是Thu Aug 20 05:00:00 GMT+05:30 2015
【问题讨论】:
-
尝试设置时区。
-
@JanithaR 我改成了
SimpleDateFormat formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm a",Locale.US);,但还是同样的问题。 -
我相信您的问题是您指定了上午/下午,但您使用大写的
H表示小时,这表示 24 小时制。将它们更改为小写h's。 -
@MikeM。你是对的。其实我不知道
H和h之间的区别。非常感谢 -
@user3177222 这是语言环境,我说的是时区。像这样
formatter.setTimeZone(TimeZone.getTimeZone("_timezone here_"));也像 Mike 说的那样删除aaa看看时间是否会以 24 小时格式正确显示。