Objective-C将NSDate设置为当前UTC
有一个简单的方法来初始化当前UTCdate/时间的NSDate
?
[NSDate date];
你可能想创build一个类似这样的类:
-(NSString *)getUTCFormateDate:(NSDate *)localDate { NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"]; [dateFormatter setTimeZone:timeZone]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *dateString = [dateFormatter stringFromDate:localDate]; [dateFormatter release]; return dateString; }
NSDate是从绝对参考date(2001年1月1日00:00 GMT)开始的间隔的参考。 所以类方法[NSDate date]将返回该间隔的表示。 要以UTC的文本格式显示数据,只需使用带有相应NSTimeZone(UTC)的NSDateFormatter根据需要进行渲染即可。
NSDate对象封装了一个时间点,与任何特定的日历系统或时区无关。 date对象是不可变的,表示相对于绝对引用date(2001年1月1日00:00:00 UTC )的不变时间间隔。
Swift版本:
extension NSDate { func getUTCFormateDate() -> String { let dateFormatter = NSDateFormatter() let timeZone = NSTimeZone(name: "UTC") dateFormatter.timeZone = timeZone dateFormatter.dateFormat = "yyyy-MM-dd HH:mm:ss" return dateFormatter.stringFromDate(self) } }