使用不同的日历标识符格式化 NSDate?

Posted

技术标签:

【中文标题】使用不同的日历标识符格式化 NSDate?【英文标题】:Format NSDate with different calendar identifier? 【发布时间】:2015-05-08 12:16:30 【问题描述】:

我正在尝试打印具有不同日历标识符的人性化日期。我能够获取日期,但是当我对其进行格式化时,它会输出回公历(或者我认为是用户当前的日历)。

这是我正在尝试的:

var calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierIslamicCivil)
var flags = NSCalendarUnit(UInt.max)
var components = calendar?.components(flags, fromDate: NSDate())

let formatter = NSDateFormatter()
formatter.dateStyle = NSDateFormatterStyle.LongStyle

let dateString = formatter.stringFromDate(calendar!.dateFromComponents(components!)!)

println(dateString)

这打印:May 8, 2015,但我试图让它打印Rajab 19, 1436。这可能吗?

【问题讨论】:

也许你应该设置 NSDateFormatter 的日历和语言环境?? 我不确定,但是我找到了对类似问题的良好回复希望这可能对***.com/a/26035658/4056108 有所帮助 【参考方案1】:

只需添加以下行

formatter.calendar = calendar

【讨论】:

以上是关于使用不同的日历标识符格式化 NSDate?的主要内容,如果未能解决你的问题,请参考以下文章

在 iOS 中将用户出生日期格式化为 NSDate 对象

CultureInfo提供有关特定区域性的信息,包括区域性的名称语言简称书写系统使用的日历以及对日期和排序字符串的格式化字符串设置。

iOS小技能: 日历的使用(案例:两个时间的比较获取最近30天的数据)

iOS小技能: 日历的使用(案例:两个时间的比较获取最近30天的数据)

Swift:使用 strftime 和 localtime 格式化 NSDate

如何使用格式化程序将字符串日期转换为 nsdate?