【问题标题】:Java LocalDateTime/ OffsetDateTime to Swift 4Java LocalDateTime/ OffsetDateTime 到 Swift 4
【发布时间】:2019-03-22 23:28:17
【问题描述】:

Swift 4 中 LocalDateTime 和 OffsetDateTime 的等价物是什么?

我正在尝试使用 Json 对 Java 日期进行编码并在 Swift 中对其进行解码。似乎 Swift 中只有一个 Date 对象。

【问题讨论】:

  • 你能说得具体一点吗?
  • 已更新。这有帮助吗?
  • 最好有一个(简化的)JSON 示例?

标签: java swift datetimeoffset localdate


【解决方案1】:

Swift 使用Date 结构来存储时间点。这始终存储在UTC 中。如果您想要本地日期时间,您可以使用CalendarDateFormatter,如下例所示:

import Foundation

let date = Date();

let dateFormatter = DateFormatter()
dateFormatter.timeStyle = .medium 
dateFormatter.dateStyle = .none // ignore date
dateFormatter.timeZone = TimeZone(secondsFromGMT: 2*60*60)
let localDate = dateFormatter.string(from:date)

print("UTC Time: \(date)")  // 2018-10-18 08:15:07 +0000
print("Local Time: \(localDate)") // 10:15:07 AM

有多种方法可以将Date 转换为本地信息,只需使用您选择的搜索引擎即可

【讨论】:

  • Java 中的LocalDateTime 类表示日期和时间,没有任何时区概念,也没有与UTC 的偏移。所以它确实代表一个时刻,它不是时间线上的一个点。
  • @BasilBourque 我说的是Foundation Date 类,而不是任何Java 类。 Date其实是一个时间点。
  • 这就是我的意思,问题的标题部分询问了 Java LocalDateTime。此答案未解决该部分。
猜你喜欢
  • 1970-01-01
  • 2017-05-17
  • 1970-01-01
  • 2021-08-27
  • 2017-03-08
  • 2020-04-27
  • 2017-12-19
  • 1970-01-01
  • 2021-11-26
相关资源
最近更新 更多