首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >未使用DateFormatter从字符串创建日期

未使用DateFormatter从字符串创建日期
EN

Stack Overflow用户
提问于 2018-06-28 19:48:50
回答 3查看 121关注 0票数 1

我有以下日期字符串:

代码语言:javascript
运行
复制
let dateString = "2018-06-24T14:52:32.647Z"

我在试着把它变成一个约会。然而,它不能在我的DateFormatter上工作。

我对DateFormatter进行了扩展,提供了一个在我的应用程序中使用的静态格式化程序:

代码语言:javascript
运行
复制
extension DateFormatter {
    static let formatter: DateFormatter = {
        let formatter = DateFormatter()
        formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"
        return formatter
    }()
}

然后我说:

代码语言:javascript
运行
复制
let date = DateFormatter.formatter.date(from: dateString)

它在我的一台设备上返回nil,但在其余设备上都可以工作。我做错了什么?是不是因为我最后有三个Z,而我应该有一个?

EN

回答 3

Stack Overflow用户

发布于 2018-06-28 20:04:48

您需要下一个日期格式:

代码语言:javascript
运行
复制
extension DateFormatter {
static let formatter: DateFormatter = {
    let formatter = DateFormatter()
    formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'"
    return formatter
}()}
票数 1
EN

Stack Overflow用户

发布于 2018-06-28 20:11:03

如果它在某些设备上工作,那么一定是语言和区域问题。

在设置->通用->语言和区域中检查,在哪个区域工作,哪个区域不工作。

每个地区都有不同的日期格式化程序。

票数 0
EN

Stack Overflow用户

发布于 2018-06-28 20:28:40

您将错误的格式发送到格式化程序

您必须更改此代码

代码语言:javascript
运行
复制
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZZZ"

使用

代码语言:javascript
运行
复制
formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSZ"
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51082182

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档