NSDate *now = [[NSDate alloc] init];
給出當前日期。如果電話日曆不是格里高利,如何在格里曆格式中獲取今天的日期?
但是,如果手機日曆不是格里高利(在模擬器上也有日語和佛教),當前日期將不是公曆。
現在的問題是如何轉換爲公曆格式或確保格式從一開始就是格里曆格式。這對於某些服務器通信至關重要。
謝謝!
NSDate *now = [[NSDate alloc] init];
給出當前日期。如果電話日曆不是格里高利,如何在格里曆格式中獲取今天的日期?
但是,如果手機日曆不是格里高利(在模擬器上也有日語和佛教),當前日期將不是公曆。
現在的問題是如何轉換爲公曆格式或確保格式從一開始就是格里曆格式。這對於某些服務器通信至關重要。
謝謝!
NSDate僅代表時間點,本身沒有格式。
將NSDate格式化爲例如一個字符串,你應該使用NSDateFormatter。它具有日曆屬性,並且如果將此屬性設置爲公曆日曆的實例,則輸出的格式將與公曆格式匹配。
NSDate *now = [NSDate date];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setCalendar:gregorianCalendar];
[formatter setDateStyle:NSDateFormatterFullStyle];
[formatter setTimeStyle:NSDateFormatterFullStyle];
NSString *formattedDate = [formatter stringFromDate:now];
NSLog(@"%@", formattedDate);
[gregorianCalendar release];
[formatter release];
我挑選的答案實際上我無法比較它們。只有顯示對我的項目是不夠的。
我終於想出了一個解決方案,隱式(NSDate)currentDate - > gregorianDate 然後我們可以比較這些NSDates。
只要記住,NSDates應採用暫時的。(它不與任何日曆連接)
NSDate* currentDate = [NSDate date];
NSCalendar *gregorianCalendar = [[NSCalendar alloc] initWithCalendarIdentifier:NSGregorianCalendar];
NSDateComponents *gregorianComponents = [gregorianCalendar components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit fromDate:currentDate];
NSDateComponents *comps = [[NSDateComponents alloc] init];
[comps setDay:[gregorianComponents day]];
[comps setMonth:[gregorianComponents month]];
[comps setYear:[gregorianComponents year]];
[comps setHour:[gregorianComponents hour]];
[comps setMinute:[gregorianComponents minute]];
[comps setSecond:[gregorianComponents second]];
NSCalendar *currentCalendar = [NSCalendar autoupdatingCurrentCalendar];
NSDate *today = [currentCalendar dateFromComponents:comps];
這怎麼能以這樣的方式來修改它返回的公曆日期爲一個NSDate,而不是一個NSString(http://stackoverflow.com/questions/16707270/nsdateformatter-not-behaving-properly-when-converting-from-buddhist-calendar-to) – acecapades 2013-05-23 07:17:43
@acecapades check this http://stackoverflow.com/a/24417064/977910 – temple 2014-06-25 19:35:24