如何获得日期字符串的时间

shi*_*vam 3 datetime objective-c

如何根据我的时区从日期时间字符串中获取时间.我的时区时间是格林威治标准时间+5:30.日期时间看起来像 -

04/03/2013 3:30:00 AM
Run Code Online (Sandbox Code Playgroud)

我希望输出像 -

9:00:00 AM
Run Code Online (Sandbox Code Playgroud)

提前致谢.

Ano*_*dya 6

你需要两个日期格式化程序.

一个将字符串转换为日期.然后将日期转换为字符串以按时间格式获取.

NSDateFormatter *dateFormatter=[NSDateFormatter new];
[dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a"];
NSDate *date=[dateFormatter dateFromString:@"04/03/2013 3:30:00 AM"];

NSDateFormatter *dfTime = [NSDateFormatter new];
[dfTime setDateFormat:@"hh:mm:ss a"];
NSString *time=[dfTime stringFromDate:date];
Run Code Online (Sandbox Code Playgroud)

*未编译和检查


saa*_*nib 5

如果您在字符串中有日期和时间,这是GMT中的日期时间,那么您需要在字符串中添加GMT.通过此,您可以获得您所在时区的实际时间 -

NSString *dateStr = @"04/03/2013 3:30:00 AM GMT";

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

    [dateFormatter setDateFormat:@"MM/dd/yyyy hh:mm:ss a ZZZ"];

    NSDate *date = [dateFormatter dateFromString:dateStr];

    [dateFormatter setDateFormat:@"hh:mm:ss a"];

    NSString *opDateStr = [dateFormatter stringFromDate:date];

    NSLog(@"op = %@",opDateStr);
Run Code Online (Sandbox Code Playgroud)