【问题标题】:Error converting parsing TIME dd.MM.yyyy', '12:00转换解析 TIME dd.MM.yyyy', '12:00 时出错
【发布时间】:2014-04-16 07:16:43
【问题描述】:

我有时间在设备上 11:34

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy', 'hh:mm");
Date date_current =  new Date();
Date date_start = null;
date_start = sdf.parse("12.03.2014, 12:00");// I PARSE THIS DATE!!!

结果是:

date_start
2014 年 3 月 12 日星期三 00:00:00 Восточноевропейское время 2014

但应该是:
2014 年 3 月 12 日星期三 12:00:00 Восточноевропейское время 2014

如何解决?

【问题讨论】:

  • 你能得到解决方案吗?

标签: java parsing date time


【解决方案1】:

要获得 24 小时格式,请使用 HH 而不是 hh。在 12 小时格式中,小时数可能会大写 0-11,这会使 12 溢出到 0

使用

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy', 'HH:mm");

【讨论】:

【解决方案2】:

首先看一下 Simpledatrformat 的模式。它清楚地显示H 用于(0-23)。

Reference for Date Format Pattern Syntax

所以你应该像下面这样改变你的代码。

SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy', 'HH:mm");
Date date_current =  new Date();
Date date_start = null;
date_start = sdf.parse("12.03.2014, 12:00");
System.out.println("now time is.." + date_start);

使用这个:

Date date = new Date();
date.setHours(date.getHours() + 8);
System.out.println(date);
SimpleDateFormat simpDate;
simpDate = new SimpleDateFormat("kk:mm:ss");
System.out.println(simpDate.format(date));

谢谢..使用上面的代码正确解析!!

【讨论】:

    【解决方案3】:

    使用 24 小时日期格式 SimpleDateFormat sdf = new SimpleDateFormat("dd.MM.yyyy', 'HH:mm");

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多