NSDate から現地時間を取得しようとしていますが、+0000 タイムゾーンしか出力していません。ICS ファイルからの情報を解析し、NSDateFormatter を使用して文字列 (20131001T114445Z のように見える) を日付に変換していますが、何らかの理由でユーザーの現地時間に変更できません。
関連するコードは次のとおりです-
+(ISParseICS*) icsParser
{
if( !fetcher ) {
fetcher = [ISParseICS new];
fetcher.dateFormatter = [[NSDateFormatter alloc] init];
[fetcher.dateFormatter setDateFormat:@"yyyyMMdd HHmmss"];
NSLog(@"Created new singleton fetcher");
}
return fetcher;
}
-(NSMutableArray *)fetchPassesSync 内の以下のコード
// Extract date/time
NSString *unformattedEndDateTimeString;
NSDate *endDate;
eventScanner = [NSScanner scannerWithString:event];
[eventScanner scanUpToString:@"DTEND:" intoString:nil];
[eventScanner scanUpToString:@"\n" intoString:&unformattedEndDateTimeString];
unformattedEndDateTimeString = [unformattedEndDateTimeString stringByReplacingOccurrencesOfString:[NSString stringWithFormat:@"DTEND:"] withString:@""];
NSLog(@"This is unformattedEndDateTimeString: %@", unformattedEndDateTimeString);
endDate = [self dateFromString:unformattedEndDateTimeString];
NSLog(@"End date - %@", endDate);
...そして最後のピース:
-(NSDate *)dateFromString:(NSString *)dateString {
dateString = [dateString stringByReplacingOccurrencesOfString:@"T" withString:@" "];
dateString = [dateString stringByReplacingOccurrencesOfString:@"Z" withString:@""];
NSDate *date = [self.dateFormatter dateFromString:dateString];
// NSLog(@"The output date: %@", date);
return date;
}
私はプログラミングにかなり慣れていないので、正しく質問したことを願っています。前もって感謝します。
編集:このコードから得られるのは、文字列「20131001T114445Z」を取り、「2013-10-01 11:44:45 +0000」のように出力することです