【问题标题】:Got nil after string to date convertation字符串到日期对话后得到零
【发布时间】:2016-12-06 10:34:42
【问题描述】:

我需要将 String simular 转换为 "2016-07-10T21:32:20G" 到 Date。 但由于某种原因,我一次又一次只有 nil

我读过an article about date formater。不幸的是,在那里没有找到答案。我在the documentation 中找到了一些东西。和文档电话阅读关于Unicode Date Format Patterns。它看起来和我的很相似。

可能我错过了什么=(

我的代码示例。不幸的是总是为零。

let lastUpdatedDateString = "2016-07-10 21:32:20"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-mm-dd hh:mm:ss"
let lastUpdated = dateFormatter.date(from:lastUpdatedDateString)

但是这段代码可以正常工作:

let lastUpdatedDateString = "2016-07-10"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-mm-dd"
let lastUpdated = dateFormatter.date(from:lastUpdatedDateString)

我正在操场上测试它。

实际上我必须将此 String("2016-07-10T21:32:20G") 转换为 Date。

PS

不管怎样,谢谢关注=)

【问题讨论】:

  • 这是正确的格式:yyyy-MM-dd HH:mm:ss or yyyy-MM-dd without the time
  • 哇! yyyy-MM-dd HH:mm:ss。它解决了这个问题。请您补充一下小写和大写之间的区别吗?
  • 这是 DateFormatter 使用的 unicode 格式:unicode.org/reports/tr35/tr35-6.html#Date_Format_Patterns
  • "mm" 是分钟,你用它来表示 "hh:mm:ss","MM" 是几个月。

标签: swift string date nsdateformatter


【解决方案1】:

认为这只是格式化程序中的大写。试试这个...

let lastUpdatedDateString = "2016-07-10 21:32:20"
let dateFormatter = DateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss"
let lastUpdated = dateFormatter.date(from:lastUpdatedDateString)

【讨论】:

    【解决方案2】:

    这是我在操场上得到的

    let lastUpdatedDateString = "2016-07-10T21:32:20"
    let dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "yyyy-MM-ddEEEEEHH:mm:ss"
    let lastUpdated = dateFormatter.date(from:lastUpdatedDateString)
    print(lastUpdated)
    

    然后打印:Optional(2016-07-10 19:32:20 +0000)(我是 GMT+2)

    我不知道 G 代表什么,所以我不确定如何获得模式的最后一个字符。 EEEEE 代表星期几(1 个字符)

    编辑:似乎G 代表公历

    所以你可以从字符串中解析出最后一个字母,如果它是公历,则添加它(但我想这是默认值):

    dateFormatter.calendar = Calendar(identifier: .gregorian)
    

    如果这封信是J,那么它就是儒略历,你可以看到这个答案来了解如何将公历转换为儒略:https://stackoverflow.com/a/12137019/2106940

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多