将时间从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链接。希望这可以帮助。