如何根据语言环境仅显示日期的日期和月份?

Posted

技术标签:

【中文标题】如何根据语言环境仅显示日期的日期和月份?【英文标题】:How to display only the day and month of a date based on the locale? 【发布时间】:2015-05-20 14:20:22 【问题描述】:

我想只显示日期的日期和月份,但我希望它基于用户的区域设置。

例如我有以下日期:21/05/2015 00:16:00 GMT+10

如果语言环境是en_US,我想要May 21,或者如果语言环境是fr_FR,我想要21 May

我查看了NSDateFormatter 格式化程序的dateStyle,但找不到我想要的。

【问题讨论】:

在格式化程序中使用实际的格式字符串。 【参考方案1】:

大概是这样的:

let d = // the date
let df = NSDateFormatter()
let format = NSDateFormatter.dateFormatFromTemplate(
    "dMMMM", options:0, locale:NSLocale.currentLocale())
df.dateFormat = format
let s = df.stringFromDate(d)

请注意,结果中涉及设备上的语言和区域设置。

【讨论】:

非常感谢!我不知道dateFormatFromTemplate。会有用的!【参考方案2】:

你可以使用简单的扩展:

public extension NSDate 
func getNiceDate() -> String! 
    let dateFormatter = NSDateFormatter()
    let format = NSDateFormatter.dateFormatFromTemplate(
        "dMMMM", options:0, locale:NSLocale(localeIdentifier: "en_US"))
    dateFormatter.dateFormat = format

    return dateFormatter.stringFromDate(self)

【讨论】:

以上是关于如何根据语言环境仅显示日期的日期和月份?的主要内容,如果未能解决你的问题,请参考以下文章

根据区域设置格式化部分日期

Java常用日期时间格式化转换符

如何在 Angular 2 中的 DatePipe 中设置语言环境?

如何从日期选择器设置语言环境格式?

Twig:根据当前语言环境显示月份的名称

以用户的语言环境格式和时间偏移显示日期/时间