Ios 如何将任意时间转换为NSDate以使用NSDateFormatter进行格式化?

Ios 如何将任意时间转换为NSDate以使用NSDateFormatter进行格式化?,ios,objective-c,xcode,nsdate,nsdateformatter,Ios,Objective C,Xcode,Nsdate,Nsdateformatter,假设我有一个NSString包含15:00 PM。我正在尝试使用NSDateFormatter对其进行格式化以显示 下午三点 但是,当我试图打印格式化字符串时,它是null NSString *string = @"15:00 PM"; NSDateFormatter *formatter = [ [NSDateFormatter alloc] init]; [formatter setDateFormat:@"hh:mm a"]; NSDate *time = [formatter dateF

假设我有一个
NSString
包含
15:00 PM
。我正在尝试使用
NSDateFormatter
对其进行格式化以显示

下午三点

但是,当我试图打印格式化字符串时,它是
null

NSString *string = @"15:00 PM";
NSDateFormatter *formatter = [ [NSDateFormatter alloc] init];
[formatter setDateFormat:@"hh:mm a"];
NSDate *time = [formatter dateFromString:string];

string = [formatter stringFromDate:time];

NSLog(@"%@", string);
如何分配字符串以正确设置其格式?

使用以下代码

NSString *string = @"15:00";
NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];
[inputDateFormatter setDateFormat:@"HH:mm"];

NSDate *date = [inputDateFormatter dateFromString:string];

NSDateFormatter *outputDateFormatter = [[NSDateFormatter alloc] init];
[outputDateFormatter setDateFormat:@"hh:mm a"];
NSString *outputString = [outputDateFormatter stringFromDate:date];
使用以下代码

NSString *string = @"15:00";
NSDateFormatter *inputDateFormatter = [[NSDateFormatter alloc] init];
[inputDateFormatter setDateFormat:@"HH:mm"];

NSDate *date = [inputDateFormatter dateFromString:string];

NSDateFormatter *outputDateFormatter = [[NSDateFormatter alloc] init];
[outputDateFormatter setDateFormat:@"hh:mm a"];
NSString *outputString = [outputDateFormatter stringFromDate:date];

我同意Mikhail的评论,你应该这样写模式:

[formatter setDateFormat:@"HH:mm a"];

格式字符串使用Unicode技术标准#35()中的格式模式,有关iOS中日期和时间格式的更多信息,请查看

我同意Mikhail的意见,您应该以以下方式编写模式:

[formatter setDateFormat:@"HH:mm a"];

格式字符串使用Unicode技术标准#35()中的格式模式,有关iOS中日期和时间格式的更多信息,请查看

以下是屏幕截图,其中说明24小时格式不包含am/pm部分:-

使用有效的日期格式,然后使用以下代码设置为12小时时间格式:-

NSDate *time = [formatter dateFromString:string];
[formatter setDateFormat:@"hh:mm"];

以下是显示24小时格式不包含am/pm部分的屏幕截图:-

使用有效的日期格式,然后使用以下代码设置为12小时时间格式:-

NSDate *time = [formatter dateFromString:string];
[formatter setDateFormat:@"hh:mm"];

我猜“15:00 PM”无效,因为15:00是24小时格式,不应包含任何AM/PM部分我猜“15:00 PM”无效,因为15:00是24小时格式,不应包含任何AM/PM部分这在我尝试NSLog OutputStringThank Rahul时给了我一个空输出,但是如何在03:00开始时删除0?当我尝试NSLog OUTPUTSTRING时,这会给我一个空输出,但是如何在03:00开始时删除0?