在日本标准时间内将24小时时间转换为12小时时间样式

时间:2014-05-08 02:07:14

标签: ios objective-c ios7 nsdateformatter

将时间从24小时时间样式转换为12小时时间样式时出现问题。 当您看到日本时间表示的iOS标准时,显示12小时时间显示0到11 但是在使用iOS内置方法进行转换时,转换00:00时午后12:00或午前12点。 当您看到设置12小时时间样式和区域日语的闹钟应用程序时,您将看到时间显示0到11.但是当您使用iOS的内置方法时,它会给出不同的结果。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    NSLocale *locale = [DateUtility createLocale];
    locale=[[NSLocale alloc]initWithLocaleIdentifier:@"ja_JPPOSIX"];
    [dateFormatter setLocale:locale];
    dateFormatter.dateFormat = @"hh:mm";
    NSDate *date = [dateFormatter dateFromString:time];
    dateFormatter.dateFormat = @"a";
    NSLog(@"Meridian=%@",[dateFormatter stringFromDate:date]);
    dateFormatter.dateFormat = @"hh";
    NSLog(@"Hour=%@",[dateFormatter stringFromDate:date]);

2 个答案:

答案 0 :(得分:1)

如果您正在寻找将日期格式转换为非常具体风格的方法,我建议使用NSDateFormatter类。

NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
[dateFormatter setDateFormate: @"yyyy-MM-dd HH:mm:ss"]; //This is just an example format, from one of my projects. It looks like this: "2014-05-07 18:32:25"

NSString* dateString = [dateFormatter stringFromDate: [NSDate date]];

dateString现在应该有一个字符串,其中包含您选择的格式的当前时间。

有关您可以使用的所有格式的完整列表,请查看this链接。希望这会有所帮助。

答案 1 :(得分:1)

使用日期格式“KK”获取小时范围0到11。

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
NSLocale *locale = [DateUtility createLocale];
locale=[[NSLocale alloc]initWithLocaleIdentifier:@"ja_JPPOSIX"];
[dateFormatter setLocale:locale];
dateFormatter.dateFormat = @"KK:mm";
NSDate *date = [dateFormatter dateFromString:time];
dateFormatter.dateFormat = @"a";
NSLog(@"Meridian=%@",[dateFormatter stringFromDate:date]);
dateFormatter.dateFormat = @"KK";
NSLog(@"Hour=%@",[dateFormatter stringFromDate:date]);