将datetime转换为字符串,错误的小时

Foe*_*nix 6 java format datetime android

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

String sdt_ = DateFormat.format("yyyyMMdd  HH:mm", dt_).toString();
Run Code Online (Sandbox Code Playgroud)

但我得到了这个

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
Run Code Online (Sandbox Code Playgroud)

如果我改变HH,我会得到这个

sdt_ = 20130116  01:28
Run Code Online (Sandbox Code Playgroud)

但我需要这个

sdt_ = 20130116  13:28
Run Code Online (Sandbox Code Playgroud)

Ber*_*ťák 8

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

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

编辑:

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

String sdt_ = DateFormat.format("yyyyMMdd  kk:mm", dt_).toString();
Run Code Online (Sandbox Code Playgroud)

显然,android.text.format.DateFormat不使用'H'约束并使用'k'代替它!有关更多详细信息,请参阅此问题:如何在java上设置24小时日期格式?