iPhone OS:如何为特定日期创建NSDate?

nic*_*ude 94 cocoa-touch nsdate nsdateformatter nscalendar ios

看起来像一个简单的事情,但我似乎无法找到一种方法来做到这一点.

看到几种不同的方法会很棒.

Ode*_*Dov 205

@ Chuck的回答是正确的,并引导我到下面的代码.以为我会分享:

NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:10];
[comps setMonth:10];
[comps setYear:2010];
NSDate *date = [[NSCalendar currentCalendar] dateFromComponents:comps];
Run Code Online (Sandbox Code Playgroud)

  • 注意,还有`setHour`,`setMinute`,`setSecond`等,以获得更精细的粒度. (7认同)

Kam*_*war 19

你可以用它

NSString *dateString = @"03-Sep-11";
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"dd-MMM-yy";
NSDate *date = [dateFormatter dateFromString:dateString];
Run Code Online (Sandbox Code Playgroud)

希望这会帮助你.


Chu*_*uck 16

如果你在谈论特定的日历日期而不是UNIX日期,你可能需要NSCalendar dateFromComponents:.


Sur*_*gch 9

Swift例子

示例通常是最简单的学习方式.这里有一些例子.

现在

这个是最简单的.

let currentDateTime = Date()
Run Code Online (Sandbox Code Playgroud)

2017年2月20日

// Specify date components
var dateComponents = DateComponents()
dateComponents.year = 2017
dateComponents.month = 2
dateComponents.day = 20

// Create date from components
let userCalendar = Calendar.current // user calendar
let dateThisPostWasUpdated = userCalendar.date(from: dateComponents)
Run Code Online (Sandbox Code Playgroud)

1976年4月1日

// Specify date components
var dateComponents = DateComponents()
dateComponents.year = 1976
dateComponents.month = 4
dateComponents.day = 1

// Create date from components
let userCalendar = Calendar.current // user calendar
let appleFoundedDate = userCalendar.date(from: dateComponents)
Run Code Online (Sandbox Code Playgroud)

需要更多细节......?

还有其他方法可以创建日期.如果你想学习这些,以及如何显示日期,那么请看我更全面的答案.


zou*_*oul 8

请参阅NSDate的文档.您可以使用dateFromString:方法NSDateFormatterdateFromComponents:方法NSCalendar.