gpt4 book ai didi

swift - 来自事件包的字符串的 NSDate

转载 作者:行者123 更新时间:2023-11-28 06:36:06 25 4
gpt4 key购买 nike

我有一个 swift 应用程序,允许用户将事件存储在默认日历中。除了 1 个部分外,一切似乎都工作正常。我允许用户通过日期选择器设置开始和结束日期。格式是

Sunday 21 Aug, 11:05 pm

我有一个保存这个日期的按钮,我正在尝试使用将它转换为有效的 NSDate

let startDate = "\(txtStartDate.text!)"
let endDate = "\(txtEndDate.text!)"
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "EEEE d MMM, h:mm a"

event.title = "\(txtEventTitle.text!)"
event.startDate = dateFormatter.dateFromString(startDate)!
event.endDate = dateFormatter.dateFromString(endDate)!
event.notes = "\(txtNotes.text!)"
event.calendar = eventStore.defaultCalendarForNewEvents

但出于某种原因,它不会保存该事件。如果我将开始日期更改为

event.startDate = NSDate()

一切都很好,所以我知道它正在节省。

不确定我在转换过程中遗漏了什么。

谢谢

最佳答案

实际上这就是 Playgrounds 的用途......

将代码复制并粘贴到 Playground 中,您将看到日期格式化程序针对给定的字符串和日期格式返回 nil

问题是语言环境。您必须将语言环境显式设置为 en_US_POSIX 以确保代码独立于当前语言环境工作。

来源:Technical Q&A QA1480 NSDateFormatter and Internet Dates

let startDate = "Sunday 21 Aug, 11:05 pm"
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateFormat = "EEE dd MMM, h:mm a"

let eventStartDate = dateFormatter.dateFromString(startDate)!

关于swift - 来自事件包的字符串的 NSDate,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39063540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com