2017-02-24 29 views
1

DateFormatterを使用して現在の日付をDateデータ型に変換したいと考えています。私は日付がdd/mm/yyyy形式であり、そのデータ型は日付ではない文字列でなければなりません。 私が試したコードと出力があります。システム日付を日付形式に日付データ型に変換する方法

let date = Date() 
print(date)//output - 2017-02-24 13:39:01 +0000 
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "dd/MM/yyyy" 
let tempDate = dateFormatter.string(from: date) 
print(tempDate)//output - 24/02/2017 
let currentDate = dateFormatter.date(from: tempDate) 
print(currentDate!)//output - 2017-02-23 18:30:00 +0000 
+0

時間/分/秒を指定していないため、文字列から日付に戻すと0(開始日)になります。しかし、私が推測しているように、あなたはインドで、UTCからの+5:30タイムゾーン、18:30:00 + 0000が今日の始まりです。00:00:00 +5:30です。 "24/02/2017" – Larme

+0

"dd/MM/yyyy"と指定した理由はありません。 – Ronit

+0

dateFormatter timezoneを変更しました dateFormatter。 timeZone = TimeZone(secondsFromGMT:##) –

答えて

0

あなたは

更新print(currentDate!)の出力は2017-02-24 00:00:00 +0000dateFormatter timeZone

dateFormatter.timeZone = TimeZone(secondsFromGMT:0) 

GMT

を設定すると等しいことを期待していた場合、私はあなたの必要性を理解していると思います。 Dateオブジェクトから時間を切り捨てたいとします。

let date = Date() 
print(date) 
let calendar = NSCalendar.current 
let components = calendar.dateComponents([.day, .month, .year], from: date) 
let currentdate = calendar.date(from: components) 
print(currentdate!) 
+0

私はその出力が欲しくない、私は出力をdd/mm/yyyy形式にし、そのデータ型は日付ではなく文字列でなければなりません。もしあなたが私がすでにそれを持っていたと述べた出力をしたい。 – Ronit

+0

更新は 'Date'から時間を切り捨てません。それは可能ではありません。この更新されたコードは、 'Date'を現地時間の深夜に変更します。それは「切捨て時間」からはかなり離れています。 – rmaddy

関連する問題