【发布时间】:2014-03-06 09:06:26
【问题描述】:
我正在尝试以新格式显示我已经拥有的日期,为此我使用SimpleDateFormat。
Android 代码
String date = "2013-08-11 20:38 EDT";
SimpleDateFormat sf = new SimpleDateFormat("dd MMMM yyyy hh:mm a");
try {
newDate = sf.format(new SimpleDateFormat("yyyy-MM-dd kk:mm z").parse(date));
} catch (ParseException e) {
e.printStackTrace();
}
它显示: 2013 年 8 月 11 日晚上 8:38
但是,如果我在 JAVA 中运行相同的代码(作为普通的 JAVA 控制台应用程序)
JAVA
String date = "2013-08-11 20:38 EDT";
SimpleDateFormat sf = new SimpleDateFormat("dd MMMM yyyy hh:mm a");
String lDate = sf.format(new SimpleDateFormat("yyyy-MM-dd kk:mm z").parse(date));
System.out.println(lDate);
它显示: 2013 年 8 月 12 日上午 06:08
这是我需要显示的格式。
P.S. :我在 android 中收到警告说
要获取本地格式,请使用 getDateInstance()、getDateTimeInstance() 或 getTimeInstance(),或使用 new SimpleDateFormat(String template, Locale locale),例如 Locale.US 用于 ASCII 日期。
所以我尝试将 Locale.US 添加到 SimpleDateFormat 它再次显示 2013 年 8 月 11 日 08:38 PM 而不是 2013 年 8 月 12 日 06:08 AM p>
我的问题是: 如何在 android 中将日期显示为 2013 年 8 月 12 日上午 06:08。
【问题讨论】:
-
那么,你的问题是什么?
-
我希望我的日期在 Android 代码中显示为 2013 年 8 月 12 日上午 06:08,而不是 2013 年 8 月 11 日下午 8:38。
-
您是否卡在 PM 到 AM 的变化中?
-
在日期格式化程序上明确设置时区。
-
检查你的安卓模拟器时间和本地电脑时间。
标签: android date date-format simpledateformat