2013-05-02 40 views
4

我也有類似的這些部分日期字符串:指定的時間與NSDateFormatter偏移(-0500)

2013-01-25 00:00:00 -0500 
2013-01-22 00:00:00 -0700 
2013-01-26 00:00:00 -0200 

我想用一個NSDateFormatter使用這些類型的字符串創建一個NSDate。我知道如何使用格式化程序獲取日期的第一部分(2013-01-25 00:00:00),但我不知道如何指定偏移量部分(-0500-0200等)。下面的代碼來獲得日期字符串的開頭:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd HH':'mm':'ss"]; 
NSString *dateString = @"2013-01-25 00:00:00"; // <-------- Truncated ---- 
NSDate *date = [dateFormatter dateFromString:dateString]; 
NSLog(@"Date: %@", date); 

我怎樣才能得到它與-0500部分工作?我試過SSSZ,但它沒有工作(給了null日期)。

+0

正是你想要的「Date:2013-01-25 00:00:00 -0500」。我對嗎 ? – 2013-05-02 12:18:08

+0

@DharmbirChoudhary我添加了一些日期格式的例子。 – 2013-05-02 12:20:05

+0

我問你想要這樣的輸出「Date:2013-01-25 00:00:00 -0500」。我對嗎 ? – 2013-05-02 12:22:02

回答

8

試試這個:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setDateFormat:@"yyyy'-'MM'-'dd HH':'mm':'ss ZZZ"]; 
NSString *dateString = @"2013-01-25 00:00:00 -0500"; 
NSDate *date = [dateFormatter dateFromString:dateString]; 
NSLog(@"Date: %@", date); 

我得到:

日期:2013年1月25日05:00:00 +0000

作爲一個側面說明,這裏是所有日期格式的標準:http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns

+0

很好,謝謝。 'ZZZ'是否適用於任何時區信息? – 2013-05-02 14:16:03

+0

很高興幫助。以下是日期格式選項的完整標準供您參考:http://unicode.org/reports/tr35/tr35-4.html#Date_Format_Patterns – iwasrobbed 2013-05-02 17:42:14

+0

爲什麼總是+000 – Jitendra 2014-08-25 12:55:10