ios - 月中的星期几(数字)。该示例适用于 4 月的第一个星期三
问题描述
嗨,我有一个快速的约会,我从 http 调用中得到...
现在我想将此日期格式化为:4 月 1 日星期三
let formatter = DateFormatter()
formatter.dateFormat = "F EEEE MMM"
let now = stats.getData()
let dateString = formatter.string(from: now)
这将返回4 月 1 日星期三,但我需要将日期设置为4 月 1 日星期三
解决方案
为了解决这个问题,我们需要两个格式化程序,一个用于日期,一个 NumberFormatter 用于将 1 格式化为 1 等。请注意,要获取月份中特定工作日的顺序,我们使用日期组件.weekdayOrdinal
。
日期模式也需要从 EEEE 更改为 E 以显示缩写的日期名称,月份需要为 MMMM 以显示完整的月份名称
let formatter = DateFormatter()
formatter.dateFormat = "E MMMM"
let numberFormatter = NumberFormatter()
numberFormatter.numberStyle = .ordinal
let now = stats.getData()
let day = Calendar.current.component(.weekdayOrdinal, from: now)
let ordinalDay = numberFormatter.string(from: NSNumber(value: day)) ?? String(day)
let dateString = "\(ordinalDay) \(formatter.string(from: now))"
推荐阅读
- javascript - 如何将值从静态函数发送到另一个对象?
- c# - 如何从 C# 中的特定 Excel 工作表中进行选择
- c# - SMS 提供商的 WebAPI 和异步问题
- java - 无法在 Azure 门户进行身份验证
- jquery - 检查列表中的每个href是否包含问号(?)并添加&符号(&) - jquery
- typescript - 将对象元组合并为一种对象类型
- java - Hibernate 未在新线程 {org.hibernate.exception.GenericJDBCException: could not extract ResultSet} 中从数据库加载数据
- javascript - 添加多个选中的默认值选择 2 jQuery 选择框
- c++ - 为什么 int arr[]={0,3,2,4,5,6,7}; 给出错误和 int arr[7]={0,3,2,4,5,6,7}; 不是
- .net-core - 读取 dotnet core 上的用户配置文件相关文件