小编典典

你如何创建一个 Swift Date 对象?

all

如何从 swift xcode 中的日期创建日期对象。

例如在javascript中你会这样做: var day = new Date('2014-05-20');


阅读 235

收藏
2022-06-23

共1个答案

小编典典

Swift 有自己的Date类型。无需使用NSDate.

在 Swift 中创建日期和时间

在 Swift 中,日期和时间存储在一个 64 位浮点数中,测量自 2001 年 1 月 1 日 00:00:00
UTC参考日期以来的秒数。这在Date结构中表示。以下将为您提供当前日期和时间:

let currentDateTime = Date()

要创建其他日期时间,您可以使用以下方法之一。

方法一

如果您知道 2001 年参考日期之前或之后的秒数,则可以使用它。

let someDateTime = Date(timeIntervalSinceReferenceDate: -123456789.0) // Feb 2, 1997, 10:26 AM

方法二

当然,使用诸如年、月、日和小时(而不是相对秒数)之类的东西来制作Date.
为此,您可以使用DateComponents指定组件,然后Calendar创建日期。Calendar给出Date上下文。否则,它怎么知道用什么时区或日历来表达呢?

// Specify date components
var dateComponents = DateComponents()
dateComponents.year = 1980
dateComponents.month = 7
dateComponents.day = 11
dateComponents.timeZone = TimeZone(abbreviation: "JST") // Japan Standard Time
dateComponents.hour = 8
dateComponents.minute = 34

// Create date from components
let userCalendar = Calendar(identifier: .gregorian) // since the components above (like year 1980) are for Gregorian
let someDateTime = userCalendar.date(from: dateComponents)

其他时区缩写可以在这里找到。如果您将其留空,则默认使用用户的时区。

方法三

最简洁的方法(但不一定是最好的)可能是使用DateFormatter.

let formatter = DateFormatter()
formatter.dateFormat = "yyyy/MM/dd HH:mm"
let someDateTime = formatter.date(from: "2016/10/08 22:31")

Unicode
技术标准显示了支持的其他格式DateFormatter

笔记

请参阅我的完整答案,了解如何以可读格式显示日期和时间。还可以阅读这些优秀的文章:

2022-06-23