dateFromString和莫斯科时间

时间:2011-07-11 21:15:55

标签: iphone nsdate

我正在使用此代码将字符串转换为日期:

+(NSDate*)dateTexteFromString:(NSString*)someString
{
    NSDateFormatter *df = [[NSDateFormatter alloc] init];
    NSLocale *locale = [[[NSLocale alloc] initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];
    [df setLocale:locale];
    [df setDateFormat:@"EEE, dd MMM yyyy hh:mm a zzz"];
    NSDate *myDate = [df dateFromString: someString];
    [df release];
    return myDate;
}

它适用于大多数日期,但这个让我发疯:

  

星期二,2011年7月12日上午12:28 MSD

(莫斯科)。我该怎么办?还有像这样的其他无法识别的时区吗?我不能尝试世界上所有的时区:(

1 个答案:

答案 0 :(得分:4)

使用MSKS代替MSD或通过执行以下操作找到所需内容:

  1. 首先使用

    查找可用的时区名称
    NSLog(@"%@", [NSTimeZone knownTimeZoneNames]);
    
  2. 然后复制您想要的名称(我复制了Europe / Moscow)并使用此代码查找缩写

    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Europe/Moscow"];
    NSLog(@"%@",[timeZone abbreviation]);