38

これらの5つのステートメントは互換性がありますか、またはそれらの使用が異なる結果をもたらす場合を知っている人はいますか?私が収集したものから、それらは同等ですが、決定的なものは何も見つかりませんでした。GMTとUTCのバリアント間の潜在的な違いが心配です。

[NSTimeZone timeZoneWithName:@"GMT"];
[NSTimeZone timeZoneWithName:@"UTC"];
[NSTimeZone timeZoneWithAbbreviation:@"GMT"];
[NSTimeZone timeZoneWithAbbreviation:@"UTC"];
[NSTimeZone timeZoneForSecondsFromGMT:0];
4

3 に答える 3

42

ドキュメントによると、CFTimeZone(および拡張によりNSTimeZone)は、タイムゾーン名、略語、GMTオフセット、およびTZ(または「Olsen」)データベースからのDST情報を使用します。

ソースを見ると、意味的には「GMT」と「UTC」はまったく異なりますが、実際には違いはありません。「GMT」はゼロオフセットのタイムゾーンです。

更新:この回答は1968年4月9日以降の日付にも当てはまりますが、過去の日付を処理する場合、Cocoaは問題の日付で有効だった過去のGMTの定義を使用しているようです(現在の定義ではありません)。これは、GMTとUTCが1968年4月9日より前の日付で異なる可能性があることを意味します。詳細な説明については、この有益なブログ投稿の最後を参照してください。

于 2013-02-19T00:45:22.213 に答える
7

ほとんどすべての場合、GMTはUTCを意味します。
しかし、今日、それはそれが何を意味するのかについて間違った言葉です。
残念ながら、AppleはGMTという用語を使用していますが、UTCを使用する必要があります。

GMTはUTCの意味ではもう存在しません(1928年以降)が、英国とアフリカでは残念ながら、この用語は西ヨーロッパ時間または西ヨーロッパ夏時間を表すためにまだ使用されています。今日の実際のGMTはUTと呼ばれ、UTCと最大0.9秒異なる場合があります。

ウィキペディアの記事:英語| ドイツ人

ただし、一部のコンピュータープログラム(メールヘッダー)では、歴史的な理由(unix)により、GMT(UTCの意味で)と呼ばれています。

于 2013-02-19T12:34:33.100 に答える
4

AppleのNSDateFormatterとInternetDatesの記事では以下を使用しています[NSTimeZone timeZoneForSecondsFromGMT:0]

static NSDateFormatter *    sRFC3339DateFormatter;
NSString *                  userVisibleDateTimeString;
NSDate *                    date;

// If the date formatters aren't already set up, do that now and cache them
// for subsequence reuse.

if (sRFC3339DateFormatter == nil) {
    NSLocale *                  enUSPOSIXLocale;

    sRFC3339DateFormatter = [[NSDateFormatter alloc] init];

    enUSPOSIXLocale = [NSLocale localeWithLocaleIdentifier:@"en_US_POSIX"];

    [sRFC3339DateFormatter setLocale:enUSPOSIXLocale];
    [sRFC3339DateFormatter setDateFormat:@"yyyy'-'MM'-'dd'T'HH':'mm':'ss'Z'"];
    [sRFC3339DateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]];
}
于 2016-02-19T05:54:16.867 に答える