• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ios - 我应该怎么做才能根据所选的语言环境正确显示日期?

[复制链接]
菜鸟教程小白 发表于 2022-12-13 05:40:48 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题

我使用日期格式“MM/dd/yyyy h:mm a”。但是当我使用不同的语言环境时,日期几乎没有变化。

let date = Date()
let formatter = DateFormatter()
formatter.dateFormat = "MM/dd/yyyy h:mm a"

formatter.locale = Locale(identifier: "de_DE")
result = formatter.string(from: date) // 09/10/2019 2:41 PM

formatter.locale = Locale(identifier: "es_ES")
result = formatter.string(from: date) // 09/10/2019 2:41 p. m.

但是当我使用这个 dateFormat "MM/dd/yyyy j:mm a"并以这种方式使用它时 formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "MM/dd/yyyy j:mm a", options: 0, locale: Locale(identifier: "de_DE")) 我有重大变化。

formatter.dateFormat = "MM/dd/yyyy j:mm a"
formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "MM/dd/yyyy j:mm a", options: 0, locale: Locale(identifier: "de_DE"))
        result = formatter.string(from: date) // 10.09.2019, 14:41
formatter.dateFormat = DateFormatter.dateFormat(fromTemplate: "MM/dd/yyyy j:mm a", options: 0, locale: Locale(identifier: "es_ES"))
        result = formatter.string(from: date) // 10/09/2019 14:41

如何不使用日期格式的“j”?我应该怎么做才能根据所选的语言环境正确显示日期?



Best Answer-推荐答案


来自文档:link

你需要使用,

formatter.dateFormat = "MM/dd/yyyy h:mm a"

仅适用于固定格式的字符串。因此,如果您使用它,语言环境将不会有任何影响。要使语言环境生效,您需要使用,

formatter.dateStyle = .short
formatter.timeStyle = .short

方法或者你提到的,

class func dateFormat(fromTemplate tmplate: String, 
              options opts: Int, 
               locale: Locale?) -> String?

方法。就 j 而言,我没有看到任何目的。您可以使用上面的“dateFormatfromTemplate”方法与相同的格式字符串。

关于ios - 我应该怎么做才能根据所选的语言环境正确显示日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57870252/

回复

使用道具 举报

懒得打字嘛,点击右侧快捷回复 【右侧内容,后台自定义】
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关注0

粉丝2

帖子830918

发布主题
阅读排行 更多
广告位

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap