2015-08-21 20 views
1

每次嘗試將日期字符串傳遞給dateFromString函數時,我都會得到nil。自從iOS 7更新以來,我還沒有看到任何事情發生了變化,但是如果這對於是否仍然以相同的方式工作有所影響,我現在正在進行更新。將字符串轉換爲日期時從dateFromString獲取nil

這是我使用的是從字符串創建日期代碼:

NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; 
[dateFormat setTimeZone:[NSTimeZone systemTimeZone]]; 
[dateFormat setLocale:[NSLocale systemLocale]]; 
[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; 
[dateFormat setFormatterBehavior:NSDateFormatterBehaviorDefault]; 

和我的日期字符串是@"2015-08-22 13:00:00"

NSDate *date = [[NSDate alloc] init]; 
date = [dateFormat dateFromString:@"2015-08-22 13:00:00"]; 
return date; 

最後一行返回零。

回答

2

你需要改變:

[dateFormat setDateFormat:@"yyyy-MM-dd hh:mm:ss"]; 

有了:

[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 

由於hh指的是12小時制和HH指的是二十四小時制。

+0

謝謝你爲我工作。 –

+1

你救了我''hh'和'HH'的區別,非常感謝 –

2

hh代表12小時模式下的小時數,13代表超出範圍。

替換hhHH 24小時的模式進行12小時時鐘和上殼體

1

我上週有完全相同的問題,我用這個代碼解決它:

NSDate *date = [NSDate dateWithTimeIntervalSince1970:dateFromString.doubleValue]; 
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init]; 
[dateFormatter setLocale:[NSLocale currentLocale]]; 
[dateFormatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]]; 
[dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; 
NSString *stringDate = [dateFormatter stringFromDate:date]; 
  • 在這裏,您有一個名爲dateFromString字符串,因爲這是日期對象類型,我收到從服務器。該字符串以double值轉換,日期按時間間隔計算。

  • 我想你需要將這個日期顯示在標籤或文本視圖或另一個UI元素中,並且正因爲如此,我將日期轉換爲NSString以便易於使用。這是我在stringDate

讓我知道如果我必須幫助你更多。