0

「2011-05-04T00:00:00」のようなUTC日付と、1352716800のようなUTCエポックを持つXMLファイルからデータを読み取っています。

UTCエポックをNSDateに解析することは、複雑な日付形式をいじくり回すよりもおそらくはるかに安全です。UTCエポックをNSDateに解析するにはどうすればよいですか?NSDateFormatterと「UTCEpoch」の特別なフォーマットを使用しますか?

そうだと思いますし[[NSDate alloc] initWithTimeIntervalSince1970:epoch]、テストはうまくいったようです。しかし、それが偶然に正しいのか、それとも「UTCエポック」が「1970年以降」なのかはわかりません。AppleDocsはUTCエポックについて言及していません。

4

3 に答える 3

4

はい、あなたは正しいです。それはUTCエポックです。参考までに、「エポック時間はUTC」の場合はこちらをチェックアウトしてください

NSString *epochTime = @"1352716800";

// (Step 1) Convert epoch time to SECONDS since 1970
NSTimeInterval seconds = [epochTime doubleValue];
NSLog (@"Epoch time %@ equates to %qi seconds since 1970", epochTime, (long long) seconds);

// (Step 2) Create NSDate object
NSDate *epochNSDate = [[NSDate alloc] initWithTimeIntervalSince1970:seconds];
NSLog (@"Epoch time %@ equates to UTC %@", epochTime, epochNSDate);
于 2012-09-04T10:21:59.220 に答える
2

UTCエポック日付を実際に解析する必要はありません。代わりに、多かれ少なかれ直接NSDateインスタンスを作成できます。

long utcEpoch = 1352716800;
NSDate* date = [Date dateWithTimeIntervalSince1970: utcEpoch];
于 2012-09-04T10:20:56.190 に答える
0

Firebase()から取得したタイムスタンプの場合kFirebaseServerValueTimestamp、エポックはミリ秒単位で表されます。

Firebaseサーバーによって現在のタイムスタンプ(Unixエポックからの時間(ミリ秒単位))を自動入力するためのプレースホルダー値。

initWithTimeIntervalSince1970その場合、iOSで使用する場合は、1000で割る必要があります。

于 2016-05-17T11:44:55.383 に答える