mysql の日時フィールドを別のタイムゾーンに変換しようとしています。日付オブジェクトを印刷すると変換は正しいように見えますが、日付を文字列として印刷すると時刻が正しくありません。ソースコードと出力は以下です。
ソース:
編集済み - 元の間隔を秒単位と文字列で出力し、タイムゾーンを追加します
interval = [NSNumber numberWithDouble: seconds];
NSLog(@"interval in ms: %@",interval);
self.dateStamp = [[NSDate alloc] initWithTimeIntervalSince1970:seconds/1000];
if(![currentZone.name isEqualToString: timezone]){ //need to convert
NSDateFormatter *fromTZ = [[NSDateFormatter alloc]init];
[fromTZ setTimeZone:currentZone];
[fromTZ setDateFormat:@"hh:mm yyyy-MM-dd"];
NSLog(@"original date: %@",[fromTZ stringFromDate:self.dateStamp]);
NSDateFormatter *toTZ = [[NSDateFormatter alloc]init];
[toTZ setTimeZone:spotZone];
[toTZ setDateFormat:@"hh:mm yyyy-MM-dd"];
NSString *tempdate = [fromTZ stringFromDate:self.dateStamp];
NSDate *toDate = [toTZ dateFromString:tempdate];
NSLog(@"Date: %@",toDate);
NSLog(@"Date String: %@", [toTZ stringFromDate:toDate]);
}
出力:
間隔 (ミリ秒): 1384193573000
元の日付: 01:12 2013-11-11 //現在のタイムゾーンの日付: America/Phoenix
Date: 2013-11-11 08:12:00 +0000 //新しいタイムゾーンの日付: America/New York
日付文字列: 01:12 2013-11-11