在Swift 3中获取当前日期?[关闭]


114

如何在Swift 3中设置label.text当前日期?

我想今天才打印到屏幕上。我没有找到该怎么做。

在C#中非常简单:

var date = DateTime.Now

我需要迅速写15.09.2016谢谢



那不是工作了吗?
yucel

1
您是否一直滚动到底部,找到了Swift 3答案?
koen 2016年

我尝试过但没有成功
yucel

1
您可能要使用NSDateFormatterand然后stringFromDate
koen 2016年

Answers:


289

您在评论中说,您想获得“ 15.09.2016”。

为此,请使用DateDateFormatter

let date = Date()
let formatter = DateFormatter()

将所需的格式提供给格式化程序:

formatter.dateFormat = "dd.MM.yyyy"

获取结果字符串:

let result = formatter.string(from: date)

设置标签:

label.text = result

结果:

2016年9月15日


2
在Swift 4.2中,DateFormatter同时具有.dateStyle和.timeStyle属性。可以将dateStyle与区域设置结合使用,而不是上面的语法有些不透明(它提供了更精细的控制-请参见nsdateformatter.com)。
green_knight,

63

您可以使用Swift 3.0以这种方式进行操作:

let date = Date()
let calendar = Calendar.current
let components = calendar.dateComponents([.year, .month, .day], from: date)

let year =  components.year
let month = components.month
let day = components.day

print(year)
print(month)
print(day)

22
即使在Swift 3之后,我也无法相信日期处理是如此糟糕!考虑到.NET中的Date是2002年的第1版,这实在令人遗憾。DateTime.Now或DateTime.Now.Month非常容易!
csmith

1
您怎么知道那天是星期一,星期二还是星期三?
Joseph Astrahan

1
如果您想以更简单的方式快速与日期进行互动,请查看SwiftDate Cocoapod。
罗布·诺巴克

1
@csmith那是因为它仍然是旧的NSDate,但是具有Swift语法。它尚未被重写。您说得对,但是工作起来有点痛苦。
bandejapaisa
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.