2013-03-24 72 views
1

我需要顯示人類可讀的NSDate本地化格式。如何使用NSDateFormatter顯示人類可讀的NSDate

目前,NSDateFormatter一次只能格式化一個日期。

但是,我可以找到關於如何做兩種日期格式的任何示例。

以下是我需要製作的一些格式示例。

  1. 10:00 - 11:00 AM 星期一2013年3月25日

  2. 10:00 AM - 11:00 PM 星期一2013年3月25日

以及這些需要以本地化格式取決於語言環境和時區。

任何人都可以在這裏遮擋一些燈光嗎?非常感謝你。

+0

有時你必須編寫自己的代碼。 – 2013-03-25 00:15:24

回答

2

無論你如何處理這個問題,你將不得不採取兩個字符串並將它們結合在一起。

當它歸結到它,你最終有兩個日期:

10:00 - 11:00AM Monday 25th March, 2013 
^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 
Date1 Date2 

您可以使用兩個單獨的NSDateFormatter對象給你你需要什麼。

NSDateFormatter *timeOnlyDateFormatter = [[NSDateFormatter alloc] init]; 
//... set the format for the timeOnlyDateFormatter here 
NSDateFormatter *fullDateFormatter = [[NSDateFormatter alloc] init]; 
//.. set the format for the fullDateFormatter here 

有了這個,你可以使用它們來創建兩個日期1串和date2字符串,然後將它們結合起來。

NSString *firstString = [timeOnlyDateFormatter stringFromDate:firstDate]; 
NSString *secondString = [fullDateFormatter stringFromDate:secondDate]; 
NSString *combined = [NSString stringWithFormat:@"%@ - %@", firstString, secondString]; 

就我所知,沒有真正的方法可以做到這一點。

+0

是的,我以前想過這個解決方案,但我堅持使用本地化的一部分。上述解決方案在格式固定時很好。但是,對於我的情況,我需要根據所用的時區和區域設置對其進行本地化。所以,格式不能修復。 – user2205732 2013-03-24 23:46:03

+0

您可以根據區域設置更改格式。你仍然需要使用一個NSDateFormatter或滾動你自己的(這不完全是一個簡單的努力) – Malaxeur 2013-03-28 05:04:47

相關問題