将时间从24小时制转换为12小时制时出现问题。
当您看到日语时间表示法的iOS标准时,它将显示12小时制,显示0到11。
但是,当使用iOS的内置方法进行转换时,当您转换00:00时会给出午后12:00或午前12:00。
当您看到设置了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]);

最佳答案

如果您正在寻找一种将日期格式转换为特定样式的方法,建议您使用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链接。希望这可以帮助。

10-06 13:23
查看更多