特定のタイムゾーン(必ずしもシステムと同じタイムゾーンである必要はありません)を使用してUnixタイムスタンプを取得しようとしています
私はこれを試しました:
NSDateFormatter *dateFormatter = [[[NSDateFormatter alloc] init] autorelease];
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSTimeZone *gmt = [NSTimeZone timeZoneWithName:@"Australia/Melbourne"];
[dateFormatter setTimeZone:gmt];
NSString *timeStamp = [dateFormatter stringFromDate:[NSDate date]];
NSDate *curdate = [dateFormatter dateFromString:timeStamp];
int unix_timestamp = [curdate timeIntervalSince1970];
これは明らかに、オーストラリアのUnixタイムスタンプ(最大秒)を与えるはずです。ただし、ログに記録するcurdate
と、それでもGMTtimeStamp
の時刻であり、オーストラリア/メルボルンの時刻です。
ここでの問題は何でしょうか?