使用[NSDate date]获取当前日期和时间

60 cocoa objective-c nsdate

我的系统的日期时间是5月26日22:55,但是当我得到[NSDate date]日期时间是5月27日02:35

是因为时区吗?

如果是,如何解决这个问题,当我得到日期时,给我系统的日期,不检查时区

Par*_*fna 137

NSLocale* currentLocale = [NSLocale currentLocale];
[[NSDate date] descriptionWithLocale:currentLocale];  
Run Code Online (Sandbox Code Playgroud)

或使用

NSDateFormatter *dateFormatter=[[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
// or @"yyyy-MM-dd hh:mm:ss a" if you prefer the time with AM/PM 
NSLog(@"%@",[dateFormatter stringFromDate:[NSDate date]]);
Run Code Online (Sandbox Code Playgroud)

  • 另一个小故障.`@"yyyy-MM-dd hh:mm:ss"`不是一个很好的日期格式,因为它会给出0-12次没有AM/PM后缀.一个更好的是`@"yyyy-MM-dd hh:mm:ss是一个"`或`@"yyyy-MM-dd HH:mm:ss"`(0-24时间格式). (7认同)
  • 对于新手(并说明显而易见的)......它是NSLog,而不是最后一行的NSlog ......只是一个错字. (6认同)