如何将NSTime格式从hh:mm:ss更改为hh:mm a?

时间:2018-03-15 07:01:12

标签: ios objective-c nsdateformatter

我想从字符串更改时间格式,我有24小时格式的hh:mm:ss值,我想用hh:mm:以12小时格式表示。

我试过了 -

    NSDateFormatter *format = [[NSDateFormatter alloc] init];
    [format setDateFormat:@"hh:mm:ss"];

    NSDate *date123 = [format dateFromString:temp123];
    [format setDateFormat:@"hh:mm a"];
    NSString* newDateString = [format stringFromDate:date123];

请帮帮我。

3 个答案:

答案 0 :(得分:2)

如果您的temp123采用24小时格式,请使用HH代替hh

NSDateFormatter *format = [[NSDateFormatter alloc] init];
[format setDateFormat:@"HH:mm:ss"];

NSDate *date123 = [format dateFromString:temp123];
[format setDateFormat:@"hh:mm a"];
[format setAMSymbol:@"am"];
[format setPMSymbol:@"pm"];
NSString* newDateString = [format stringFromDate:date123];

答案 1 :(得分:0)

根据您的需要尝试以下功能

+(NSString*)getStringFromDate:(NSDate*)pDate withFormat:(NSString*)pDateFormat{
    NSDateFormatter *dtFormatter = [[NSDateFormatter alloc] init];
    [dtFormatter setDateFormat:pDateFormat];
    return [dtFormatter stringFromDate:pDate];
}

+(NSDate*)getDateFromString:(NSString*)pStrDate withFormat:(NSString*)pDateFormat{
    NSDateFormatter *dtFormatter = [[NSDateFormatter alloc] init];
    [dtFormatter setDateFormat:pDateFormat];
    return [dtFormatter dateFromString:pStrDate];
}

+(NSString*)dateStringFromString:(NSString *)dateToConver format:(NSString *)fromFormat toFormat:(NSString *)toFormat{
    NSDate *date = [Helper getDateFromString:dateToConver withFormat:fromFormat];
    return [Helper getStringFromDate:date withFormat:toFormat];
}

答案 2 :(得分:0)

您的时间字符串是24小时格式。

目标C

NSString *strTime = @"23:10:00";
NSDateFormatter *dateFormater = [[NSDateFormatter alloc] init];
[dateFormater setDateFormat:@"HH:mm:ss"];
NSDate *originalTimeFromString = [dateFormater dateFromString:strTime];
[dateFormater setDateFormat:@"hh:mm a"];
NSString *newDateString = [dateFormater stringFromDate:originalTimeFromString];
NSLog(@"%@",newDateString);

Swift 4

let strTime = "23:10:00";
let dateFormater = DateFormatter()
dateFormater.dateFormat = "HH:mm:ss"
let originalTimeFromString = dateFormater.date(from: strTime)
dateFormater.dateFormat = "hh:mm a"
let newTimeString = dateFormater.string(from: originalTimeFromString!)
print("Converted Time===>>>",newTimeString)