【问题标题】:different time results with Locale使用语言环境的不同时间结果
【发布时间】:2013-05-16 12:35:25
【问题描述】:
    SimpleDateFormat formato =new SimpleDateFormat("HH:mm:ss");
    Calendar cal = Calendar.getInstance();
    String fecha11 = String.valueOf(formato.format(cal.getTime()));

    Locale locale = new Locale("es", "ES");
    SimpleDateFormat format = new SimpleDateFormat("HH:MM:ss", locale);
    String fecha22 = String.valueOf(format.format(cal.getTime()));

结果: 14:06:12(我设备中的那个小时) 14:16:55(使用 Locale("es", "ES"))

是的,我在西班牙 (Bcn) ¬¬' 有人会解释我为什么? 下一个问题,当我将语言环境更改为其他国家/地区时会发生这种情况吗?

谢谢,

Àlex

【问题讨论】:

  • 您的结果没有意义。 MM 不能给出大于 12 的数字

标签: java android date locale hour


【解决方案1】:

在您的第二个示例中:SimpleDateFormat format = new SimpleDateFormat("HH:MM:ss", locale);,您使用的是 MM 而不是 mm,因此打印的是月份数而不是分钟数(但 5 月应该是 05)。

【讨论】:

    【解决方案2】:

    mm 是分钟。 MM是月份

    您的第二种格式是 Hour:Month:Seconds

    在 assylias 评论后编辑

    【讨论】:

    • 就是这样:MM 是月,mm 是分钟。
    • 同意。我基于给出的结果进行假设。 06 月似乎比 16 月更合乎逻辑。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-28
    相关资源
    最近更新 更多