通过NSDate获取时间和日期

Saf*_*ari 30 iphone time date objective-c nsdate

如何从NSDate中检索日期和时间.我想分开看他们.谢谢

Bro*_*die 50

NSDate *localDate = [NSDate date];
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init];
dateFormatter.dateFormat = @"MM/dd/yy";

NSString *dateString = [dateFormatter stringFromDate: localDate];



NSDateFormatter *timeFormatter = [[NSDateFormatter alloc]init];
timeFormatter.dateFormat = @"HH:mm:ss";


NSString *dateString = [timeFormatter stringFromDate: localDate];
Run Code Online (Sandbox Code Playgroud)

有许多不同的方式来表示日期和时间,因此请查看NSDateFormatter以获取更多信息.


Mos*_*szi 17

如果你真的想拥有分钟,小时和日期的值,我会选择使用NSDateComponents和NSCalendar ......这样的事情:

NSDateComponents *components = [[NSCalendar currentCalendar] components:NSHourCalendarUnit | NSMinuteCalendarUnit | NSDayCalendarUnit | NSMonthCalendarUnit | NSYearCalendarUnit
                                                                   fromDate:[NSDate date]];
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用组件的属性来访问component.hour,component.year等每个组件的值.

另请注意,如果您使用NSDateFormatter示例 - 那么您应该记住NSDateFormatter是一个重型对象,如果可能,您应该重用它...


McC*_*nus 10

我会在其他答案中使用以下内容:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateStyle:NSDateFormatterMediumStyle];
[dateFormatter setTimeStyle:NSDateFormatterNoStyle];

NSString *formattedDateString = [dateFormatter stringFromDate:yourDate];
[dateFormatter release];
Run Code Online (Sandbox Code Playgroud)

它的优点是它将格式设置为用户在系统设置中设置的格式.这样您就不必担心用户喜欢10/31/11或31/10/11格式的短日期等项目.请参阅文档以获取可用样式列表.

Swift 2.2:

let dateFormatter = NSDateFormatter()
dateFormatter.dateStyle = NSDateFormatterStyle.MediumStyle
dateFormatter.timeStyle = .NoStyle
let myDateString = dateFormatter.stringFromDate(myNSDate)

dateFormatter.dateStyle = NSDateFormatterStyle.NoStyle
dateFormatter.timeStyle = .ShortStyle
let myTimeString = dateFormatter.stringFromDate(myNSDate)
Run Code Online (Sandbox Code Playgroud)