当前位置: 首页 > 面试题库 >

iOS Swift 3:将“ yyyy-MM-dd'T'HH:mm:ssZ”格式的字符串转换为日期对象

孟选
2023-03-14
问题内容

你好,我有一本字典

self.publishedAt = dictionary["publishedAt"] as? NSString

在其中我得到日期“ 2017-01-27T18:36:36Z ”。我想将其转换为可读格式: dd-MM-yyyy hh:mm:ss
。我尝试通过

let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "dd-MM-yyyy hh:mm:ss"
let date = dateFormatter.date(from: (self.publishedAt as? String)!)
print("EXACT_DATE : \(date)")

但是变得零。:(

以简单格式获取日期的正确方法是什么?


问题答案:

您需要输入格式将ISO8601字符串转换为日期,并且需要输出格式将日期转换回字符串:

let string = "2017-01-27T18:36:36Z"

let dateFormatter = DateFormatter()
let tempLocale = dateFormatter.locale // save locale temporarily
dateFormatter.locale = Locale(identifier: "en_US_POSIX") // set locale to reliable US_POSIX
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZ"
let date = dateFormatter.date(from: string)!
dateFormatter.dateFormat = "dd-MM-yyyy HH:mm:ss"
dateFormatter.locale = tempLocale // reset the locale
let dateString = dateFormatter.string(from: date)
print("EXACT_DATE : \(dateString)")


 类似资料:
  • 问题内容: 我在网络上阅读了更多问题,但还没有找到解决方案。 我有一个完全像这种格式的 字符串, 例如“ 14/05/1994”。 我需要以 相同的格式* 将其隐藏到 java.util.Date 中。 * 我试过了: 但结果是:1994年5月14日星期六星期六00:00:00 结果是:1994年5月14日不是字符串,而是java.util.Date? 问题答案: 一个不 具有 的格式。这只是个约

  • 问题内容: 我正在尝试使用以下方式将dd-mm-yyyy格式的字符串转换为JavaScript中的日期对象: 包含格式为dd-mm-yyyy的日期。当我执行以下操作时,我得到“无效日期”: 这是因为符号“-”吗?我该如何克服? 问题答案: 分割为“-” 将字符串解析为所需的部分: 使用正则表达式 为什么不使用正则表达式? 因为您知道将要使用由连字符分隔的三部分组成的字符串。 但是,如果您要在另一个

  • 问题内容: 我有一个像这样的字符串。我想将其转换为相同格式的日期。我尝试过这样的事情: 但是输出是不同的格式,例如。我怎样才能使其按需工作。谁能帮我。我知道这可能是重复的,但我没有发现任何运气。 问题答案: 从Java APIhttps://docs.oracle.com/javase/8/docs/api/java/util/Date.html Date类表示特定的时间瞬间,精度为毫秒。 试着去

  • 问题内容: 我正在将存储在日历对象中的日期转换为字符串,以便在MySQL中进行查询。我需要格式为“ yyyy-MM-dd HH:mm:ss”的字符串,即:“ 2010-01-01 15:30:00”。我正在使用类似的代码: 现在,该字符串的,而不是“2010 - 01 -01 15:30:00”像我所期望的是“2010 - 02 -01 15:30:00”。我已经在http://download.

  • 问题内容: 我有多个具有生日的联系人,并且所有联系人都已与移动设备同步。现在的问题是所有联系人的生日格式都不同,我想以“ dd-MM- yyyy”之类的特定格式显示所有生日日期。 因此,例如,一个同步联系人的生日为“ 1990-02-07”或“ 1988-06-15T22:00:00.000Z”或“ 12-02-1990”等,则应显示所有这些日期以特定格式“ dd-MM-yyyy”。 那我该如何解

  • 我有多个联系人的出生日期,并且都与移动设备同步。现在的问题是所有联系人都有不同的生日格式,我想以特定格式显示所有生日日期,例如“dd-MM-yyyy”。 例如,一个同步联系人的生日是“1990-02-07”或“1988-06-15T22:00:00.000Z”或“12-02-1990”等...那么所有这些日期都应该以特定的格式“dd-MM-yyyy”显示。 那么我该如何解决这个问题呢? 如有任何建