Objective c 日期字符串的日期格式字符串

Objective c 日期字符串的日期格式字符串,objective-c,nsdateformatter,Objective C,Nsdateformatter,在Object-C中,以下日期字符串的日期格式字符串如何: 2017:04:11 17午後5:40:00 我尝试了“yyyy:MM:dd HH:MM:ss a”,设置的区域设置为currentLocale。 我的设备是日语,24小时显示已关闭。只需查看字符串的所有部分即可(我希望我得到的部分正确-否则只需在下面的链接中查找正确的格式字符即可): 2017四位数年份:yyyy 04两位数月份:MM 11两位数的日期:dd 17hour,24小时格式,两位数字:HH 午後am/pm字符串:a 51

在Object-C中,以下日期字符串的日期格式字符串如何:

2017:04:11 17午後5:40:00

我尝试了
“yyyy:MM:dd HH:MM:ss a”
,设置的区域设置为
currentLocale

我的设备是日语,24小时显示已关闭。

只需查看字符串的所有部分即可(我希望我得到的部分正确-否则只需在下面的链接中查找正确的格式字符即可):

  • 2017
    四位数年份:
    yyyy
  • 04
    两位数月份:
    MM
  • 11
    两位数的日期:
    dd
  • 17
    hour,24小时格式,两位数字:
    HH
  • 午後am/pm字符串:
    a
  • 5
    12小时格式,一位或两位数字:
    h
  • 40
    2位数分钟:
    mm
  • 00
    2位秒:
    ss
合并:
yyyy:MM:dd HH:MM:ss

有关字符串的参考(OS X>=v10.9和iOS>=7),请参阅(有关旧版本的链接,请参阅)

NSDateFormatter*dateFormatter=[[NSDateFormatter alloc]init];
[dateFormatter setDateFormat:@“yyyy:MM:dd HH a h:MM:ss”];
NSDate*date=[NSDate date WITH TIME INTERVALSECREFERENCEDATE:513650400];
NSLog(@“%@,[dateFormatter stringFromDate:date]);
//产出:2017:04:11 17午後 5:40:00

当然
17午後5:40:00
的格式不是
HH:mm:ss a
<代码>a
用于am/pm。谷歌翻译告诉我,
午後表示“下午”。
17
是小时吗?其他3组数字是什么?你所有的问题答案都是“是”。谢谢。原始日期/时间字符串是如何生成的?谢谢您的评论。这是有用的。问题更复杂。当我们将设备切换为英语(US)时,在上面的同一日期字符串中。变成:2017:04:11下午5:40:00。因此,如果我们使用上述字符串格式并更改NSDateFormatter的区域设置。这似乎无法解决问题。如果我使用英语语言环境运行代码示例,我会得到
2017:04:11 17 PM 5:40:00
,如果用户将设备设置为英语,我是否正确地认为您希望使用
2017:04:11 5:40:00 PM
?如果是这样,一个字符串就不可能实现这一点,您需要检查用户的区域设置,然后根据它切换格式字符串。这是我的问题。我认为NSFormatter和正确的语言环境将正确理解“a”的位置。也许它不使用格式字符串。它可能会设置NSDateFormatter一些东西来获取此信息。