【问题标题】:UTC and local timeUTC 和当地时间
【发布时间】:2016-02-15 04:59:10
【问题描述】:

我搜索了这个问题,但我没有找到解决这个特定问题的方法: 我可以将 UTC 时间(来自服务器)转换为本地日期和时间格式,而无需指定语言环境或格式吗? 我发现的每个示例都指定了格式样式,对于某些国家/地区可能有所不同。例如,在美国,时间是 MM/dd/yyyy 和 AM/PM,但在欧洲通常是 dd.MM.yyyy 和 24 小时格式)。

我在下面添加了我自己问题的答案。

【问题讨论】:

  • 您是否从服务器获取时间(以毫秒为单位)?您可以将其解析为日期类
  • 格式会自动正确,还是我必须指定一些额外的参数(如语言环境...)?
  • 一种简单的执行方法:始终以定义的格式存储 UTC 日期,例如 2015-12-12T12:12:12.500Z ,并使用 javascript moment.js 将它们显示为本地日期。这样您就不必为仅用于演示目的的格式样式而烦恼。
  • 此页面的未来访问者:旧的日期时间 API(java.util 日期时间类型及其格式类型,SimpleDateFormat)已过时且错误 -易于。建议完全停止使用,改用java.timemodern date-time API。您可以查看使用java.time API 的this answer

标签: android datetime timezone datetime-format


【解决方案1】:

我实际上找到了适用于 Android 的解决方案:

android.text.format.DateFormat.getTimeFormat(context).format(new java.util.Date(utcDateTime))

因此,上面的行将根据用户对 24 小时格式的偏好返回 String 格式化时间的值。

android.text.format.DateFormat.getMediumDateFormat(context).format(new java.util.Date(utcDateTime));

此行还将根据用户的语言偏好返回 String 包含格式化日期。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-05-03
    • 2020-01-13
    • 2019-08-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-29
    • 2015-09-26
    相关资源
    最近更新 更多