1

時間とともにをに変換しようとしNSStringNSDateいます。これが私が今していることです:

 NSString *myDateIs= @"2012-07-14 11:30:40 AM ";
 NSDateFormatter* startTimeFormat = [[NSDateFormatter alloc] init];
 [startTimeFormat setDateFormat:@"YYYY-MM-dd hh:mm:ss a "];
 NSDate*newStartTime = [startTimeFormat dateFromString:myDateIs];

出力は2012-07-14 06:00:40 +0000です。日付は正しいですが、時刻は正しくありません。どうすれば正しい時刻を取得できますか?ありがとう。

4

4 に答える 4

2

取得する時刻はGMTであり、現地時間に変換します。

NSDateFormatter* local = [[[NSDateFormatter alloc] init] autorelease];        
[local setTimeZone:[NSTimeZone timeZoneWithName:@"EST"]];
[local setDateFormat:@"YYYY-MM-dd hh:mm:ss a"];

NSString* localSTR = [local stringFromDate: newStartTime];
于 2012-07-16T08:01:49.277 に答える
1

これはあなたのために働くでしょう:

[startTimeFormat setDateFormat:@"YYYY-MM-dd hh:mm:ss aa"];
[startTimeFormat setTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];

dateFormatでaを見逃したため、timeZoneを設定する必要があります。

于 2012-07-16T08:08:22.470 に答える
1

タイムゾーン。NSDateは、GMTで時刻を保存します。ただし、ローカルタイムゾーンはおそらくかなり異なります。

于 2012-07-16T08:01:28.100 に答える
1

タイムゾーンを設定する必要があります。

NSString *myDateIs= @"2012-07-14 11:30:40 AM ";
NSDateFormatter* startTimeFormat = [[NSDateFormatter alloc] init];
startTimeFormat.timeZone=[NSTimeZone timeZoneWithName:@"UTC"];
[startTimeFormat setDateFormat:@"YYYY-MM-dd hh:mm:ss a"];
NSDate*newStartTime = [startTimeFormat dateFromString:myDateIs];
NSLog(@"%@", newStartTime);

出力:

 2012-07-14 11:30:40 +0000
于 2012-07-16T08:06:17.187 に答える