当前位置: 首页 > 知识库问答 >
问题:

swift ' yyyy-MM-DD t ' hh:MM:ss . sssz '字符串至今[重复]

松和泰
2023-03-14

我正在使用下面的代码将日期字符串格式化为日期对象。但是对于某些日期字符串,它有效,对于某些日期字符串,它返回nil。

format = " yyyy-MM-DD ' t ' hh:MM:ss . sssz "

“2019-04-02T09:47:24.055Z”作品

“2019-03-27T22:31:17.140Z”不起作用

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.sssZ"


let date = dateFormatter.date(from: "2019-03-27T22:31:17.140Z")

共有2个答案

艾骏
2023-03-14
let dateFormatter = DateFormatter()
        dateFormatter.locale = Locale(identifier: "en_US_POSIX")
        dateFormatter.timeZone = TimeZone(secondsFromGMT: 0)
        dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"


        let date = dateFormatter.date(from: "2019-04-02T09:47:24.055Z")
        let date1 = dateFormatter.date(from: "2019-03-27T22:31:17.140Z")
        print(">>>>>!!", date, date1)

可选(2019-04-02 09:47:24 0000) 可选(2019-03-27 22:31:17 0000)

上面的代码像预期的那样工作。

使用SSS代替sss

对于yyyy-MM-dd'T'HH: mm:ss.sssZand2019-04-02T09:47:24.055Z的情况,输出为:

可选(2019-04-02 09:47:55 0000)无

看分和秒:)

华知
2023-03-14

你的格式不对。应该是:"yyyy-MM-dd'T'HH: mm:ss.SSSZ"请看这里的日期时间格式:https://unicode.org/reports/tr35/tr35-dates.html#Date_Format_Patterns

 类似资料:
  • 问题内容: 我正在尝试将Java解析为时间转换器应用程序的日期为2011年3月14日…我得到2010年12月26日…请帮助。 输出: 解析日期:美国东部时间2010年12月26日15:00:00 问题答案: 应该是(小写)。您可以在文档中找到可用字符及其含义的列表。 出于好奇,更多的信息,这对 本周一年 ,在这里(不是100%肯定它是什么,说实话)。

  • 我有字符串,它是。 我想把这个字符串转换成格式为的字符串,或者在本例中是。

  • 问题内容: 我正在尝试解析Java中的字符串日期对象。 我的字符串是: 代码是: 我期望的输出是: 但是我得到的是: 你知道为什么吗? 问题答案: 月用“ M”表示,“ m”表示分钟。 详细信息在此页面上。

  • 我的字符串可以包含任何其他字符,但如果它至少包含一个数字,我希望从数组中获取这些字符串的索引。

  • 问题 你想重复一个字符串。 解决方案 创建一个包含 n+1 个空元素的数组,然后用要重复的字符串作为连接字符将数组元素拼接到一起: # 创建包含10个foo的字符串 Array(11).join 'foo' # => "foofoofoofoofoofoofoofoofoofoo" 为字符串重复方法 你也可以在字符串的原型中为其创建方法。它十分简单: # 为所有的字符串添加重复方法,这会重复返回

  • 我试图获取任意长度的字符串[],并将其打印成字符串,最好使用字段分隔符。现在我有: 但是由于某种原因,它只是返回“第二个”值。我如何使它正确连接这些值? 另外,我可以使用来简化代码吗?谢谢