昨天如何从Date()中提取今天,并将其定位为工作日和月份?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了昨天如何从Date()中提取今天,并将其定位为工作日和月份?相关的知识,希望对你有一定的参考价值。

我想昨天从昨天开始提取,所以当我改变工作日和月份的语言时它会自动本地化。

我正在使用的本地化日期代码:

let dateFormatter = Foundation.DateFormatter()
dateFormatter.dateFormat = "MMMM dd, yyyy"
dateFormatter.locale = Locale(identifier: "en_US_POSIX")
dateFormatter.timeZone = TimeZone(identifier: "UTC")
let dateStr = dateFormatter.string(from: datePickerView.date)
let timeStr = "00:00:00.000"

let dateString = NSString(format:"%@ %@",dateStr,timeStr)
let mainDF = Foundation.DateFormatter()
mainDF.dateFormat = "MMMM dd, yyyy hh:mm:ss.SSS"
mainDF.locale = Locale(identifier: "en_US_POSIX")
mainDF.timeZone = TimeZone(identifier: "UTC")
let date = mainDF.date(from: dateString as String)

怎么做到这一点?

答案

DateFormatter有特殊标志:doesRelativeDateFormatting,使用为此格式化程序设置的区域设置,以相对格式呈现日期。

...如果日期格式化程序使用相对日期格式,则在可能的情况下,它会用短语替换其输出的日期组件,例如“今天”或“明天” - 表示相对日期。可用的短语取决于日期格式化程序的区域设置;然而,对于将来的日期,英语可能只允许“明天”,法语可能允许“后天的后天”,......

例:

let dateFormatter = DateFormatter()
dateFormatter.locale = Locale.autoupdatingCurrent // Using system locale
dateFormatter.doesRelativeDateFormatting = true // Enabling relative date formatting

// other dataFormatter settings here, irrelevant for example
dateFormatter.timeStyle = .none
dateFormatter.dateStyle = .medium

let now = Date() 
let dateString: String = dateFormatter.string(from: now)  
print("dateString: (dateString)") // Prints `dateString: <Today in current locale>`

以上是关于昨天如何从Date()中提取今天,并将其定位为工作日和月份?的主要内容,如果未能解决你的问题,请参考以下文章

如何从今天的日期获取下个月的日期并将其插入我的数据库中?

如何从 Python 3 中的字节数组中的特定位中提取值?

我如何提取合并的数据并将其放入不同的工作表中?

如何从字符串中提取文本并将其保存为两列并在第三列的末尾添加字符

从 mp4 中提取音轨并将其保存到可播放的音频文件中

PHP Twitter API 无法获取georss:point 并将其存储为变量?