0

としてログに記録されるNS日付を保存しています

2013-03-15 00:00:01 +0000

+0000はUTC時間だと思います。しかし、私が試してみると

NSCalendar* theCalendar = [NSCalendar currentCalendar];

unsigned theUnitFlags = NSDayCalendarUnit | NSHourCalendarUnit | NSMinuteCalendarUnit | NSSecondCalendarUnit;

NSDateComponents* compsForDate = [theCalendar components:theUnitFlags fromDate:compDate];

カンプは次のように記録されます。

<NSDateComponents: 0xc0537b0>
    Calendar Year: 2013
    Month: 3
    Leap month: no
    Day: 14
    Hour: 20
    Minute: 0
    Second: 1
    Weekday: 5

この日付に関連付けられたタイムゾーンがあるとは思わなかったので、日は15、時間は0になると想定していました。誰かが私がどこで間違っているのか教えてもらえますか?

4

2 に答える 2

4

その日付に関連付けられたタイムゾーンがあります-UTC。カレンダーに関連付けられたタイムゾーンもあります。おそらくロケール設定のタイムゾーンです(とにかくそれがデフォルトです)。カレンダーは、タイムゾーンでその日付を解釈することから生じる日付コンポーネントを提供します。

于 2013-03-16T18:45:48.813 に答える
1

時間文字列の+0000は、UTC(イギリス、グリニッジ)の時間オフセットを示します。投稿に含めた結果の時間コンポーネントは、ローカルタイムゾーンが考慮された時間です。コンプに基づくと、ローカルタイムゾーンはUTCから-4時間離れています。

ケビン。

于 2013-03-16T19:02:50.540 に答える