将日期字符串转换为可读日期

时间:2020-07-27 22:51:23

标签: swift timestamp

我从这样的服务器上得到一个日期:"2020-07-20T23:03:11.17926" 我想使其具有可读性,我必须将其转换为时间戳,然后再次将其转换为可读的字符串。

这是我的代码:

func timeStringFromUnixTime(timestamp: String) -> String {
  let stringDate = timestamp
  let dateFormatter = DateFormatter()
  dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
  let dateString = dateFormatter.date(from: stringDate)
  
  //get timestamp from Date
  if let dateTimeStamp  = dateString?.timeIntervalSince1970 {
     let date = Date(timeIntervalSince1970: TimeInterval(dateTimeStamp))
     dateFormatter.dateFormat = "MMM d, h:mm"
     dateFormatter.timeZone = TimeZone(identifier: NSTimeZone.default.identifier)
     let localDate = dateFormatter.string(from: date)
     return localDate
  }
  return ""
}

但是问题是dateString等于nil,因此它返回一个空字符串。有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

替换:

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"

具有:

dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS"
  • Z-“ RFC 822 GMT格式。也可以匹配Zulu(UTC)时间的文字Z。”
  • SSS-“毫秒”。

看看NSDateFormatter.com,了解有关日期格式的更多信息。