を取得しますcurrentDate
は、String
の代わりにNSDate
の代わりに渡される有効なパラメータではありませんは、私はスウィフトに日付と時刻を取得するに探していると、これは短い、読みやすい日付/時刻の出力を取得するための推奨される戦略で日付と時刻スウィフト
なぜこのような場合がわかりますか?私は日付と時刻を取得するときにこれに似たアプローチしか見つけていません。本当にありがとう、すべての助けに感謝します!
を取得しますcurrentDate
は、String
の代わりにNSDate
の代わりに渡される有効なパラメータではありませんは、私はスウィフトに日付と時刻を取得するに探していると、これは短い、読みやすい日付/時刻の出力を取得するための推奨される戦略で日付と時刻スウィフト
なぜこのような場合がわかりますか?私は日付と時刻を取得するときにこれに似たアプローチしか見つけていません。本当にありがとう、すべての助けに感謝します!
あなたは本当にString
にNSDate
から行くので、stringFromDate
を使用したい:ここ
let convertedDate = formatter.stringFromDate(currentDate)
ああそれは理にかなっています。ありがとうございました。 –
は、あなたが迅速な3構文でそれを行うことができます正確にどのようにある -
let currentDate = NSDate()
let formatter = DateFormatter()
formatter.locale = Locale.current()
formatter.dateStyle = .shortStyle
formatter.timeStyle = .shortStyle
let convertedDate = formatter.string(from: currentDate as Date)
BR
Leo Dabusは、Friso BuurmanによってこのQuestionにNSDateからStringを取得するための良い拡張を書きました。 OBRIGADOレオは
改造注意してください:私はそれとから借りてきた再書かれは、元のコードでは、新しいコーダーのために混乱することができstatic constants
、string variables
とargument parameters
の宣言に同じ変数名を使用しているため。
これはLeoの素晴らしい拡張機能で、ほとんどNSDateFormatter
ボイラープレートコードが含まれています(Apple docs)。
スウィフト2
extension NSDateFormatter {
convenience init(stringDateFormat: String) {
self.init()
self.dateFormat = stringDateFormat
}
}
extension NSDate {
struct Formatter {
static let newDateFormat = NSDateFormatter(stringDateFormat: "dd-MM-yyyy")
}
var myNewDate: String {
return Formatter.newDateFormat.stringFromDate(self)
}
}
コンソール出力:
print(NSDate().myNewDate) // "05-07-2016\n"
スウィフト3
extension DateFormatter {
convenience init(stringDateFormat: String) {
self.init()
self.dateFormat = stringDateFormat
}
}
extension Date {
struct Formatter {
static let newDateFormat = DateFormatter(stringDateFormat: "dd-MM-yyyy")
}
var myNewDate: String {
return Formatter.newDateFormat.string(from: self)
}
}
コンソール出力:
print(Date().myNewDate) // "05-07-2016\n"
dateFromStringではなく、stringFromDate。 –