NSDate时间从12小时转换到24小时格式

您好,我有问题,同时转换date格式…date时间格式12小时格式如12/9/2010 4:00:00 PM (月/日/年小时:分钟秒Pm)我需要转换它成为像12/9/2010 16:00:00的 24小时格式
任何人都可以请帮助我…. Thx提前

 NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; dateformatter.dateFormat = @"hh:mm a"; NSDate *date = [dateformatter dateFromString:departTime]; dateformatter.dateFormat = @"HH:mm"; NSString *time24 = [dateformatter stringFromDate:date]; departTimelbl.text=time24; 

只需要做这个获得24小时的时间格式(在Swift 2中)

 let formatter = NSDateFormatter() formatter.dateFormat = "HH:mm a" //(hh:mm a----> for 12 hour format) let timeString = formatter.stringFromDate(NSDate()) print(timeString) 

更新:Swift 3版本

 let formatter = DateFormatter() formatter.dateFormat = "HH:mm a" //(hh:mm a----> for 12 hour format) let timeString = formatter.string(from: Date()) print(timeString) 

你需要使用NSDateFormatter 。 我鼓励你阅读由Kay链接的类参考。

这是你怎么做的。 我假设date是作为一个NSString

 NSDateFormatter *formatter = [[NSDateFormatter alloc] init]; [formatter setDateFormat:@"MM-dd-yyyy HH:mm:ss"]; NSDate *myDate = [df dateFromString:yourNSString]; NSString *myNewDate = [formatter stringFromDate:myDate]; [formatter release]; [myDate release]; 

使用这些function,这将改变datestring从12到24小时的合成和24至12小时的合成。

 -(NSString *)changeformate_string24hr:(NSString *)date { NSDateFormatter* df = [[NSDateFormatter alloc]init]; [df setTimeZone:[NSTimeZone systemTimeZone]]; [df setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; NSDate* wakeTime = [df dateFromString:date]; [df setDateFormat:@"MM/dd/yyyy HH:mm:ss"]; return [df stringFromDate:wakeTime]; } -(NSString *)changeformate_string12hr:(NSString *)date { NSDateFormatter* df = [[NSDateFormatter alloc]init]; [df setTimeZone:[NSTimeZone systemTimeZone]]; [df setDateFormat:@"MM/dd/yyyy HH:mm:ss"]; NSDate* wakeTime = [df dateFromString:date]; [df setDateFormat:@"MM/dd/yyyy hh:mm:ss a"]; return [df stringFromDate:wakeTime]; } 

看看NSDateFormatter 类参考和数据格式指南 。 在那里你会发现更多特别的方法dateFromString和stringFromDate是你有趣的。 还有另一个问题处理类似的问题从string与地区date在iphone SDK中 ,你可以find一些示例代码,当你想设置一个特殊的格式模板string。