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

时间:2010-12-09 07:22:09

标签: ios objective-c cocoa-touch

我在转换日期格式时遇到问题... 日期时间采用格式12小时格式,如 12/9/2010 4:00:00 PM  (月/日/年时:最小:秒Pm) 我需要将其转换为24小时格式,如 12/9/2010 16:00:00
任何人都可以帮帮我.... Thx提前

7 个答案:

答案 0 :(得分:6)

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;

答案 1 :(得分:4)

只需执行此操作即可获得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)

答案 2 :(得分:3)

您需要使用NSDateFormatter。我鼓励您阅读由Kay链接的课程参考。

这是你如何做到的。我假设日期来自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];

答案 3 :(得分:2)

使用这些功能,这会将日期字符串从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];

}

答案 4 :(得分:1)

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
dateFormatter.dateFormat = @"HH:mm";
NSDate *date = [dateFormatter dateFromString:@"15:15"];

dateFormatter.dateFormat = @"hh:mm a";
NSString *pmamDateString = [dateFormatter stringFromDate:date];

答案 5 :(得分:0)

查看NSDateFormatter class referencedata formatting guide。在那里你会发现更特别的方法dateFromString和stringFromDate对你有意义。还有另一个问题涉及类似问题From string with locale to date on iphone sdk,您可以在设置特殊格式模板字符串时找到一些示例代码。

答案 6 :(得分:0)

  1. 在Swift中

    var dateFormatter = DateFormatter()
    dateFormatter.dateFormat = "MM/dd/yyyy hh:mm:ss a"
    var date: Date? = dateFormatter.date(from: "12/9/2010 4:00:00 PM")
    dateFormatter.dateFormat = "MM/dd/yyyy HH:mm:ss"
    var convertedString: String? = nil
    if let aDate = date {
        convertedString = dateFormatter.string(from: aDate)
    }
    
  2. 在目标C

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    dateFormatter.dateFormat = @"MM/dd/yyyy hh:mm:ss a";
    NSDate *date = [dateFormatter dateFromString:@"12/9/2010 4:00:00 PM"];
    dateFormatter.dateFormat = @"MM/dd/yyyy HH:mm:ss";
    NSString *convertedString = [dateFormatter stringFromDate:date];