2017-10-28 10 views
-3

タイムゾーンはStringとなっており、Swift 4のこのタイムゾーンで日付(フォーマットはdd:mm:yyyy)と時刻(フォーマットはhh:mm:ss)を取得したいと考えています。これを行う?swift4のタイムゾーンから日付と時刻を取得

私はカレンダーライブラリを見たことがありますが、私は自分の問題を解決するためにそれを見る方法を理解していません。

+1

ところで、あなたは結果の文字列の目的が何であるかを自問する必要があります。たとえば、Webサービスとのやりとりやデータベースへの保存の場合は、 'dateFormat'を設定するだけでなく、' en_US_POSIX'の 'locale'とUTCの' timeZone'を指定します。しかし、UIで表示する場合は、 'dateFormat'をまったく使用しないでください。代わりに' dateStyle'と 'timeStyle'を使用する必要があります。そのため、日付と時刻はあなたの好みのフォーマットで表示されます。例えば。したがって、米国のユーザーは2017年10月28日を参照しますが、英国のユーザーは2017年10月28日を参照してください。 – Rob

+0

https://stackoverflow.com/a/28347285/2303865 –

答えて

2
let dateFormatter = DateFormatter() 
dateFormatter.dateFormat = "dd:MM:yyy hh:mm:ss" 

let timeZone = TimeZone(identifier: "Europe/Amsterdam") 

dateFormatter.timeZone = timeZone 

dateFormatter.string(from: Date()) 

"dd-MM-yyyy HH:mm:ss"の方が正しいと思われますが、そうは言っても;カスタム日付形式を解析するときに形式を設定するには、dateFormatを使用する必要があります。ユーザーに表示する日付を書式設定するときは、ユーザーが期待する日付形式(デフォルトのシステムロケール)を使用する必要があります。あなたはdateStyletimeStyleを使用する必要があることを行うには:マルセルは、あなたが望むものを達成するために、 `dateFormat`を設定する方法を示しますながら

dateFormatter.dateStyle = .medium 
print(dateFormatter.string(from: Date())) // prints "Oct 28, 2017" 

dateFormatter.dateStyle = .medium 
dateFormatter.timeStyle = .medium 
print(dateFormatter.string(from: Date())) // prints "Oct 28, 2017 Oct 28, 2017 at 11:19:13 PM" 
関連する問題