Objective-C setting NSDate to current UTC

前端 未结 3 964
忘掉有多难
忘掉有多难 2020-11-29 18:51

Is there an easy way to init an NSDate with the current UTC date/time?

相关标签:
3条回答
  • 2020-11-29 19:21

    [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;
    }
    
    0 讨论(0)
  • 2020-11-29 19:24

    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.

    0 讨论(0)
  • 2020-11-29 19:29

    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)
        }
    }
    
    0 讨论(0)
提交回复
热议问题