ios – NSDateFormatter:使用具有相对格式的自定义格式

ios – NSDateFormatter:使用具有相对格式的自定义格式,第1张

概述我试图以一种形式格式化NSDates,它在适用的时候使用相对格式,在不使用的时候是星期几:“今天”,“明天”,“星期天”,“星期一”,…… 问题是,NSDateFormatter的doesRelativeFormatting仅在使用dateStyle时起作用,而不在dateFormat中起作用. (基本上,我需要在明天后的所有日子里使用dateFormat =“EEEE”的功能.) 目前,我正在使 我试图以一种形式格式化NSDates,它在适用的时候使用相对格式,在不使用的时候是星期几:“今天”,“明天”,“星期天”,“星期一”,……

问题是,NSDateFormatter的doesrelativeFormatting仅在使用dateStyle时起作用,而不在dateFormat中起作用. (基本上,我需要在明天后的所有日子里使用dateFormat =“EEEE”的功能.)

目前,我正在使用以下代码:

let dateFormatter = NSDateFormatter()dateFormatter.timeStyle = .NoStyledateFormatter.dateStyle = .FullStyledateFormatter.doesrelativeDateFormatting = truelet dateString = dateFormatter.stringFromDate(theDate)return dateString.componentsSeparatedByString(" ")[0]

这恰好在我的特定区域设置中工作,其中NSDateFormatterStyle.FullStyle输出类似“2015年8月23日星期日”的内容,但显然这不是一个好的或一般的解决方案.

我找到的最接近的东西是this question,但对于我的用例来说似乎不必要的复杂,如果可能的话,我想要更优雅的东西.

谢谢!

解决方法 我使用3个日期格式化程序:

> dateStyle = .FullStyle和doesrelativeDateFormatting = true
> dateStyle = .FullStyle和doesrelativeDateFormatting = false
> dateFormat =“EEEE”和dIDrelativeDateFormatting = false

获取1和2的格式化字符串.如果它们不同,则使用1中的字符串.如果它们相同,则获取并使用3中的字符串.

这应该对所有语言环境都可靠地工作.出于性能原因,请确保保留所有3个格式化程序,而不是每次都重新创建它们.

总结

以上是内存溢出为你收集整理的ios – NSDateFormatter:使用具有相对格式的自定义格式全部内容,希望文章能够帮你解决ios – NSDateFormatter:使用具有相对格式的自定义格式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1005506.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存