【问题标题】:Getting the current time and date on a 24 hour timescale获取 24 小时制的当前时间和日期
【发布时间】:2011-11-08 23:50:07
【问题描述】:

我在获取 24 小时制的当前时间时遇到问题。据我所知,“HH”应该代表 24 小时制的当前时间,但是,由于某种原因,“HH”根本不会被解释。这就是为什么下面的代码行输出类似 "HH:50:06 Uhr, 02. Sep.":

DateFormat.format("HH:mm:ss 'Uhr', dd. MMM", new Date());

任何想法我做错了什么?但是,使用“hh”可以输出 12 小时制的时间,这不是我想做的。

感谢您的帮助!

【问题讨论】:

  • 查看这里:developer.android.com/reference/android/text/format/…希望对您有所帮助!
  • 关于来自 Dimitris Makris 链接的格式字符:“直到 API 级别 17,仅支持 adEhkMmszy。请注意,此类错误地实现了k,就好像它是H,以实现向后兼容性。”这似乎解释了为什么大写的HH 出现。

标签: java android date time


【解决方案1】:

您可以使用SimpleDateFormat 将其格式化为您喜欢的方式,这样可以:

SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String str = sdf.format(new Date());

还有Android version of docs

【讨论】:

    【解决方案2】:

    HH 是一天中小时的格式说明符,采用 24 小时格式(0-23;偏移量为 0),仅当您使用 SimpleDateFormat 类格式化日期时。

    您正在使用format method of the android.text.format.DateFormat class 类,它不使用这种表示法;相反,它使用符号 k/kk 以 24 小时格式显示小时。 因此,您的日期格式字符串必须按以下方式指定:

    DateFormat.format("kk:mm:ss 'Uhr', dd. MMM", new Date());
    

    【讨论】:

    • 感谢您详细说明。
    • 这很不幸,因为developer.android.com/reference/android/text/format/… 的 Javadoc 声明“有关格式字符串的规范文档,请参阅 SimpleDateFormat。”
    • @RobertTupelo-Schneck,是的,当您提供自己的格式字符串时,规范文档仅在您使用类的工厂方法而不适用于其他方法时并不明显。
    【解决方案3】:

    试试这个:

          SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
          String s = sdf.format(new Date());
    

    【讨论】:

      猜你喜欢
      • 2012-12-04
      • 1970-01-01
      • 2015-01-18
      • 1970-01-01
      • 1970-01-01
      • 2013-11-22
      • 1970-01-01
      • 2012-01-10
      相关资源
      最近更新 更多