Objective-C setting NSDate to current UTC
[NSDate date];
You may want to create a category that does something like this:
-(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 is a reference to an interval from an absolute reference date, January 1, 2001 00:00 GMT. So the class method [NSDate date] will return a representation of that interval. To present that data in a textual format in UTC, just use the NSDateFormatter with the appropriate NSTimeZone (UTC) to render as needed.
NSDate objects encapsulate a single point in time, independent of any particular calendrical system or time zone. Date objects are immutable, representing an invariant time interval relative to an absolute reference date (00:00:00 UTC on 1 January 2001).
Swift version:
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) }}