80

NSDate現在のUTC日付/時刻で初期化する簡単な方法はありますか?

4

3 に答える 3

147

[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;
}
于 2010-04-11T02:26:15.083 に答える
13

NSDateは、絶対参照日である2001年1月1日00:00GMTからの間隔への参照です。したがって、クラスメソッド[NSDate date]は、その間隔の表現を返します。そのデータをUTCでテキスト形式で表示するには、NSDateFormatterと適切なNSTimeZone(UTC)を使用して、必要に応じてレンダリングします。

于 2010-04-11T02:44:12.077 に答える
1

NSDateオブジェクトは、特定のカレンダーシステムやタイムゾーンに関係なく、単一の時点をカプセル化します。日付オブジェクトは不変であり、絶対参照日( 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)
    }
}
于 2016-01-09T17:20:59.120 に答える