swift - 如何在不包括年份的情况下在 Swift 4 中显示日期?
问题描述
使用 DateFormatter Full Style 时如何删除年份。我希望它显示这样的日期,例如:(10 月 4 日,星期四)。不包括年份。
目前我有:
func todaysDate() {
dateLabel.text = DateFormatter.localizedString(from: NSDate() as Date, dateStyle: DateFormatter.Style.full, timeStyle: DateFormatter.Style.none)
}
解决方案
如果您想要正确本地化但自定义的格式,则需要使用setLocalizedDateFormatFromTemplate
.
func todaysDate() {
let df = DateFormatter()
df.setLocalizedDateFormatFromTemplate("EEEEMMMMd")
dateLabel.text = df.string(from: Date())
}
EEEE
给出完整的工作日名称。MMMM
给出完整的月份名称。d
给出月份的日期。
根据用户的语言环境,生成的格式将按照正确的顺序添加适当的标点符号。
另请注意,没有理由使用NSDate
.
作为旁注,我会将您的代码重构为更像这样:
func todaysDate() -> String {
let df = DateFormatter()
df.setLocalizedDateFormatFromTemplate("EEEEMMMMd")
return df.string(from: Date())
}
然后是您当前呼叫的位置:
todaysDate()
我会做:
dateLabel.text = todaysDate()
推荐阅读
- python - 降级 Python(非 Conda)后 Jupyter 无法正常工作
- python - 我正在制作一个自动填充类型的机器人,但遇到了一些问题
- angular - NgbDatepicker 在使用任何模型或对象“{}”时返回 null
- git - 如何将多个 svn 主干子树合并到一个 git-svn 存储库中?
- python - 使用 lambda 函数从另一个列表或数组中查找元素
- c++ - C++ 掷骰子和图形
- discrete-mathematics - 在这个证明序列中如何使用 modus pomens?
- c# - 使用 C# 在 WPF 中动态添加图像上的文本
- java - 一个 Map 的 List 的 Spring 值注入
- github - 从 Github Classroom 完全删除文件