6

我在我的android应用程序(java)中这样做:

String sdt_ = DateFormat.format("yyyyMMdd  HH:mm", dt_).toString();

但我得到了这个

01-16 14:31:13.308: D/ThS(25810): dt_ = Wed Jan 16 13:28:00 GMT+00:00 2013
01-16 14:31:23.758: D/ThS(25810): sdt_ = 20130116  HH:28

如果我将 HH 更改为 hh 我会得到这个

sdt_ = 20130116  01:28

但我需要这个

sdt_ = 20130116  13:28
4

3 回答 3

8

我不知道,你的代码有什么问题,但这段代码对我有用:

DateFormat df = new SimpleDateFormat("yyyyMMdd  HH:mm");
String sdt = df.format(new Date(System.currentTimeMillis()));
System.out.println(sdt);

编辑:

后来我发现你的原始代码应该适用于此:

String sdt_ = DateFormat.format("yyyyMMdd  kk:mm", dt_).toString();

显然, android.text.format.DateFormat 不使用 'H' 约束并使用 'k' 代替它!有关详细信息,请参阅此问题:How to set 24-hours format for date on java?

于 2013-01-16T15:02:41.773 回答
4

这将为您完成:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd  HH:mm", Locale.getDefault());
String sdt_ = sdf.format(dt_);
于 2013-01-16T15:02:00.203 回答
4

你在你的SimpleDateFormat模式中使用了 hh 。那是 12 小时制。使用 kk 代替,它以 24 小时格式为您提供一天中的小时数。参见SimpleDateFormat

于 2013-01-16T15:11:34.210 回答