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

How do I change NSTime format from hh:mm:ss to hh:mm a?

我想更改字符串的时间格式,我在 hh:mm:ss 中有 24 小时格式的值,我想将其设为 hh:mm:a 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];

请帮助我。

根据需要尝试以下功能,

+(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];
}

如果您的 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];

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

Objective 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)