[iphone] Objective-C 설정 NSDate를 현재 UTC로

NSDate현재 UTC 날짜 / 시간 으로를 초기화하는 쉬운 방법이 있습니까?



답변

[NSDate date];

다음과 같은 작업을 수행하는 범주를 만들 수 있습니다.

-(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는 절대 참조 날짜 인 2001 년 1 월 1 일 00:00 GMT의 간격에 대한 참조입니다. 따라서 클래스 메서드 [NSDate date]는 해당 간격의 표현을 반환합니다. 해당 데이터를 UTC의 텍스트 형식으로 표시하려면 적절한 NSTimeZone (UTC)과 함께 NSDateFormatter를 사용하여 필요에 따라 렌더링하십시오.


답변

NSDate 객체는 특정 캘린더 시스템이나 시간대에 관계없이 단일 시점을 캡슐화합니다. 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)
    }
}


답변