将日期时间转换为字符串,错误的小时



我在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

我不知道,你的代码有什么问题,但这段代码对我来说是有效的:

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'代替它!如何在java上设置日期的24小时格式?

这将为您做:

SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd  HH:mm", Locale.getDefault());
String sdt_ = sdf.format(dt_);

您在SimpleDateFormat模式中使用了hh。这是12小时制。使用kk代替,它以24小时的格式给出一天中的时间。看到SimpleDateFormat

相关内容

  • 没有找到相关文章

最新更新