json - 转换JSON时间日期格式和位置格式

标签 json swift nsdateformatter

我目前正在收到一个 JSON 响应,其中包含时区和 utc 格式的日期。我想将其切换为更具可读性的格式。时区 - “America/Los_Angeles”有点棘手。有什么特别关于如何去展示这座城市的想法吗?预先感谢您的任何指示

Plan_it.Start(timezone: "America/Los_Angeles", utc: "2018-06-27T03:00:00Z", local: Optional("2018-06-26T20:00:00"))

当我将这些打印到控制台时,我得到了这样的输出。我想得到这样的输出 - 基本上我需要重新格式化输出,这是我最初的问题。

(2018年5月26日10:30洛杉矶。)

override func viewDidLoad() {
    super.viewDidLoad()

    eventNameLbl.text = detailedEvent?.name.html
    eventStartTimeLbl.text = detailedEvent?.start.local
    eventAddressLbl.text = detailedEvent?.start.timezone
    eventDescriptionLbl.text = detailedEvent?.description.text

output//Optional("2018-05-26T20:30:00")
output//Optional("America/Los_Angeles")

最佳答案

您需要使用 DateFormatter。您首先需要使用提供的时区将本地字符串解析为 Date。然后您可以根据需要格式化该日期。

if let dateStr = detailedEvent?.start.local, let timezone = detailedEvent?.start.timezone {
    let formatter = DateFormatter()
    formatter.locale = Locale(identifier: "en_US_POSIX")
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
    formatter.timeZone = TimeZone(identifier: timezone)
    if let date = formatter.date(from: dateStr) {
        let df = DateFormatter()
        df.setLocalizedDateFormatFromTemplate("MMMMddyyyyHHmmVVV")
        df.timeZone = TimeZone(identifier: timezone)
        let dateCity = df.string(from: date)
    }
}

或者你可以把它分开:

if let dateStr = detailedEvent?.start.local, let timezone = detailedEvent?.start.timezone {
    let formatter = DateFormatter()
    formatter.locale = Locale(identifier: "en_US_POSIX")
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss"
    formatter.timeZone = TimeZone(identifier: timezone)
    if let date = formatter.date(from: dateStr) {
       let df = DateFormatter()
       df.dateStyle = .medium
       df.timeStyle = .short
       df.timeZone = TimeZone(identifier: timezone)
       let localdate = df.string(from: date)
       df.dateFormat = "VVV"
       let city = df.string(from: date)
    }
}

关于json - 转换JSON时间日期格式和位置格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50322920/

相关文章:

ios - NSDate 转换为 24 小时格式

objective-c - Http 日期到 NSDate

android json多维数组

mysql - 将 MYSQL 日期时间列转换为 JSON - SPRING BOOT

ios - 如何安全地将唯一的客户 QR 码传输到业务扫描仪?

ios - 仅通过更改大小写在 Swift 中重命名文件会产生错误 : No such file or directory

ios - 渲染 UICollectionView 的单元格时不考虑部分插入

ios - 将UTC时间转换为系统时间得到空值

python - Mapreduce无法按值排序[python]

iphone - 从 JSON 中过滤 NSArray?