2017-01-06 5 views
1

私はこのコードを使用していますが、今は突然すべてがクラッシュし始めました。私はそれを理解することができなかった、どんな助けも認められるだろう。日付フォーマッタはnilの値を返します

let dateFormatter = NSDateFormatter() 
dateFormat = "EEE, MMM d, yyyy hh:mm a" 
dateFormatter.dateFormat = dateFormat     
let date = dateFormatter.dateFromString("Thu, Jan 5, 2017 12:28 PM") 

dateをnilとして返します。どうして?私はそれが適切な日付を返すようにします。

これは重複する可能性のある質問のようですが、具体的な詳細があります。

+0

を使用したい、私はそれを試してみましたが、それが正しい日付を返す 'せたDateFormatter =たDateFormatter() DATEFORMATは=「EEEせ、 MMM d、yyyy hh:mm a " dateFormatter.dateFormat = dateFormat let date = dateFormatter.date(" Thu、Jan 5、2017 12:28 PM ") ' の日付は**です" 2017年1月5日、12:28 PM "**。 – nynohu

+0

スイフト3.0を使用していますか? –

+0

はい、私はswift 3を使用しています。 – nynohu

答えて

0
let dateformattor = NSDateFormatter() 
dateformattor.dateFormat = "EEE, MMM d, yyyy hh:mm a" 
dateformattor.timeZone = NSTimeZone.localTimeZone() 
let dt = "Thu, Jan 5, 2017 12:28 PM" 

let dt1 = dateformattor.dateFromString(dt as String) 
print(dt1) //print date and time UTC format. 

出力:

2017-01-05 06:58:00 +0000 
+0

これはSwift 3には適していません。 –

+0

スウィフト2.0 @BenjaminLowry –

+0

私の悪い、私はOPがスウィフト3.0を使用していると思った。 –

0
var dateFormatter = DateFormatter() 
     let dateFormat = "EEE, MMM d, yyyy hh:mm a" 
     dateFormatter.dateFormat = dateFormat 
     let date = dateFormatter.date(from: "Thu, Jan 5, 2017 12:28 PM") 

OUTPUT:あなたは、時間と日付フォーマッタで作業するたびにロケール設定することを忘れないでください

enter image description here

0

d タイムゾーン

英語以外のロケールのデバイスでは、「Thu、Jan 5、2017 12:28 PM」を「Thu」および「Jan」と解釈することができません。

ので:

dateFormatter.timeZone = TimeZone(abbreviation: "UTC") 
dateFormatter.locale = Locale(identifier: "en_US_POSIX") 

または何時間帯およびロケールあなたは

関連する問題