我正在尝试创建一个函数,该函数将获取任意日历中传入的月份的公历和结束日期。所以如果我通过希伯来语日历,第三个月,5775年,我会期待回到这样的东西(2015-05-19T00:00:00.000-05:00,2015-06-17T00:00:00.000-05)。 :00)错误的日期转换?
let (start,end) = gregorianMonthForCalendarMonth(NSCalendar(calendarIdentifier: NSCalendarIdentifierHebrew)!, 3, 5775)
println(start)
println(end)
什么,我得到的是(2014-11-23T00:00:00.000-05:00,2014-12-22T00:00:00.000-05:00)
不确定我做错了什么。
我的功能:
let fullDateFormatter = getFullDateFormatter()
func getFullDateFormatter() -> NSDateFormatter {
let _dateFormatter = NSDateFormatter()
_dateFormatter.calendar = NSCalendar(calendarIdentifier: NSCalendarIdentifierGregorian)
_dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss'.'SSSZZZZZ"
return _dateFormatter
}
func gregorianMonthForCalendarMonth(calendar:NSCalendar, month:Int, year:Int) -> (start:String, end:String) {
// get 1st day of month
let components = NSDateComponents()
components.year = year
components.month = month
components.day = 1
let start = calendar.dateFromComponents(components)
// get number of days in the month
let days = calendar.rangeOfUnit(NSCalendarUnit.CalendarUnitDay, inUnit: NSCalendarUnit.CalendarUnitMonth, forDate: start!)
components.day = days.length
let end = calendar.dateFromComponents(components)
return (start!.stringValue(),end!.stringValue())
}
extension NSDate {
func stringValue() -> String {
let strDate = fullDateFormatter.stringFromDate(self)
return strDate
}
}
根据https://www.hebcal.com/converter/?hd=30&hm=Sivan&hy=5775&h2g=1和http://www.chabad.org/calendar/view/month.htm它不是。使用你的链接,输入今天的日期2015年6月15日,并转换为希伯来语,你会得到Sivan 28,5775 –
我需要重新检查我的预期结果。 –