如何在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"