【问题标题】:Java SimpleDateFormat am/pmJava SimpleDateFormat 上午/下午
【发布时间】:2013-05-21 12:25:41
【问题描述】:

我得到一个格式为:MM-dd-yy hhmma zzz 的日期。问题是我只得到一个 A 代表 AM 或 P 代表 PM。如何将具有该格式的字符串解析为日期对象?

  • 亚历克斯

【问题讨论】:

  • 更多信息呢?什么意思是“只有 A 代表 AM 或 P 代表 PM”?
  • 你能输入你接收日期字符串的格式吗?
  • 它可以在我的电脑上运行。输出:“05-21-13 0228PM CEST”。我的代码是 System.out.println(new SimpleDateFormat("MM-dd-yy hhmma zzz").format(new Date()));
  • 仅表示代表 AM 的“A”,与代表 PM 的“P”相同。例如:05-21-13 0228P EDT

标签: java parsing date-format simpledateformat


【解决方案1】:

使用这个'a'

示例:MM-dd-yy hhmma a;

访问http://docs.oracle.com/javase/7/docs/api/java/text/SimpleDateFormat.html

【讨论】:

    【解决方案2】:

    这种模式对我有用:

    dd-MM-yyyy hh:mm:ss a

    它以这种格式打印信息: 2016 年 12 月 2 日下午 03:50:07

    【讨论】:

      【解决方案3】:

      简单,在解析之前对 A->AM/P->PM 进行字符串替换。 SimpleDateFormat 不支持 AM/PM 的 A/P。

      【讨论】:

      • 你可以实现自己的 DateFormat..但这似乎有点过分了。
      【解决方案4】:

      dd-MM-yyyy(MM-代表月份)。请不要在 DATE TIME hh:MM:ss 的时间部分使用 MM。

      例如。它将显示日期 '15-02-2017 12:12:05' 为 '15-02-2017 12:02:05' 而不是 12:12:05。用分钟代替月份。

      • hh - 代表 12 小时时间格式
      • HH - 代表 24 小时时间格式

      最好使用带有“hh:mm a”的 12 小时时间格式,以便清楚地了解它是否是 'AM/PM'

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-03-28
        • 1970-01-01
        • 2016-11-10
        • 2012-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多