如何在iOS中从格式化的string中获取date和时间

我有一个NSString“dateString”,其中包含给定格式的date和时间。

"MM/dd/yyyy HH:mm:ss a"

我想使用NSDateFormatter从dateString中获取数据,然后我试图显示一个string"strDate" 。 我能够获取数据,但唯一的问题是,我没有得到"hour"地方正确的价值。

例如:

 dateString = 1/23/2015 7:06:37 AM strDate = 01/23/2015 00:06:37 am 

如何解决这个问题。 提前致谢。 这是我的代码:

 -(NSString *)getDateQuestion:(NSString *)dateString { NSLog(@"dateString = %@",dateString); //NSString to NSDate NSDate *datefromString = [[NSDate alloc] init]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+5:30"]]; [dateFormatter setTimeZone: [NSTimeZone systemTimeZone]]; [dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; datefromString = [dateFormatter dateFromString:dateString]; NSLog(@"dateString1 = %@",datefromString); //NSDate convert to NSString [dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"GMT+5:30"]]; [dateFormatter setTimeZone:[NSTimeZone timeZoneForSecondsFromGMT:0]]; NSString *strDate = [dateFormatter stringFromDate:datefromString]; NSLog(@"strDate = %@",strDate); return strDate; } 

只是通过正确的date时间string的function,不要设置时区不必要的一次又一次…我希望它可以帮助你…

 NSDate *dat = [NSDate date]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; [dateFormatter setTimeZone:[NSTimeZone timeZoneWithName:@"UTC+05:30"]]; [dateFormatter setDateFormat:@"MM/dd/yyyy HH:mm:ss a"]; NSString * dateString =[dateFormatter stringFromDate:dat]; NSLog(@"dateString = %@",dateString); NSLog(@"dateString1 = %@",dateString); //NSDate convert to NSString [dateFormatter setDateFormat:@"HH:mm:ss a"]; NSString *strDate = [dateFormatter stringFromDate:dat]; NSLog(@"strDate = %@",strDate); 

HH代表24小时。

hh十二个小时。

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

replace为"MM/dd/yyyy hh:mm:ss a"