我想使用NSDateFormatter上的dateFormat
参数来使用字符串模板格式化日期,例如yyyy-MM-dd
。我意识到这来自UTS-35,但我不确定我的操作系统使用的是哪个标准版本。
过去有一个页面可以准确指定每个版本的iOS支持的Unicode Technical Standard #35版本。我无法再在Apple的文档中找到该页面。
最新的几个iOS版本使用哪个版本的UTS-35?
答案 0 :(得分:2)
Date Formatting Guide有我正在寻找的页面:
固定格式
要为日期格式化程序指定自定义固定格式,请使用
setDateFormat:
。格式字符串使用Unicode技术标准#35中的格式模式。该标准的版本因操作系统的发布而异:
- OS X v10.9和iOS 7使用version tr35-31。
- OS X v10.8和iOS 6使用version tr35-25。
- iOS 5使用version tr35-19。
- OS X v10.7和iOS 4.3使用version tr35-17。
- iOS 4.0,iOS 4.1和iOS 4.2使用version tr35-15。
- iOS 3.2使用version tr35-12。
- OS X v10.6,iOS 3.0和iOS 3.1使用version tr35-10。
- OS X v10.5使用version tr35-6。
- OS X v10.4使用version tr35-4。
因此,您最有可能为任何最新的iOS版本寻找version tr35-31。
但是,正如dateFormat
documentation所述,如果您向用户显示日期,最好完全避开dateFormat
参数并使用dateStyle
和{{1其中考虑了用户的语言环境/偏好。
在使用固定格式表示时,您应该只设置此属性,如Working With Fixed Format Date Representations中所述。对于用户可见的表示形式,如果使用预定义的样式无法实现所需的格式,则应使用
dateStyle
和timeStyle
属性或setLocalizedDateFormatFromTemplate:
方法;这两个属性和此方法都提供了适合显示给用户的本地化日期表示。