【问题标题】:How do I convert timestamp string to local time string?如何将时间戳字符串转换为本地时间字符串?
【发布时间】:2012-10-03 07:25:48
【问题描述】:

我有时间戳字符串:"1989-01-01 00:00:00",我需要将其转换为本地日期格式。

我执行:

SimpleDateFormat TIMESTAMPFORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
DateFormat.getDateFormat(getContext()).format(TIMESTAMPFORMAT.parse("1989-01-01 00:00:00"));

而 getDateFormat 返回31.12.1988

为什么?

我怎样才能收到01.01.1989???

【问题讨论】:

  • dd.mm.yyyy - 仅适用于我的语言环境的正确日期格式!我需要以正确的格式向用户显示日期
  • 那不是时间戳,那是字符串。
  • 时间戳是一个概念,字符串是一个可见的表示
  • 为什么需要解析它?你不能收到很长的吗?
  • 静止。它表示没有时区的时间。可能是在正确时区的前一天

标签: java android date format


【解决方案1】:

为了在格式化时跳过时区,我建议您将其设置为默认值,如下所示:

SimpleDateFormat TIMESTAMPFORMAT = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
TIMESTAMPFORMAT.setTimeZone(TimeZone.getTimeZone("GMT"));

【讨论】:

    【解决方案2】:

    这可能与所涉及的时区有关。我强烈怀疑您在 formatting 与您用于 parsing 的时区不同,并且该值基本上会在午夜之前到达。如果您可以在两者上使用相同的时区,那么它可能会起作用。

    如果可以的话,我鼓励你改用Joda Time - 你真的想要LocalDate。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-11-22
      • 2014-10-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多