LoginSignup
157
156

More than 5 years have passed since last update.

Swiftで現在日時を取得し、様々なスタイルで出力する方法

Last updated at Posted at 2014-06-24

開発環境

  • Xcode 6 Beta
  • Mac OS X 10.9.3

実行環境

  • iOS Simulator (iPhone5s / iOS 8.0)

コード(USロケールの場合)

let now = NSDate() // 現在日時の取得
let dateFormatter = NSDateFormatter()

dateFormatter.locale = NSLocale(localeIdentifier: "en_US") // ロケールの設定

dateFormatter.timeStyle = .NoStyle // 時刻のスタイルの設定
dateFormatter.dateStyle = .NoStyle // 日付のスタイルの設定
println(dateFormatter.stringFromDate(now)) // -> 出力されない

dateFormatter.timeStyle = .ShortStyle
dateFormatter.dateStyle = .ShortStyle
println(dateFormatter.stringFromDate(now)) // -> 6/24/14, 11:01 AM

dateFormatter.timeStyle = .MediumStyle
dateFormatter.dateStyle = .MediumStyle
println(dateFormatter.stringFromDate(now)) // -> Jun 24, 2014, 11:01:31 AM

dateFormatter.timeStyle = .LongStyle
dateFormatter.dateStyle = .LongStyle
println(dateFormatter.stringFromDate(now)) // -> June 24, 2014 at 11:01:31 AM GMT+9

dateFormatter.timeStyle = .FullStyle
dateFormatter.dateStyle = .FullStyle
println(dateFormatter.stringFromDate(now)) // -> Tuesday, June 24, 2014 at 11:01:31 AM Japan Standard Time

dateFormatter.timeStyle = .NoStyle // 時刻だけ表示させない
dateFormatter.dateStyle = .FullStyle
println(dateFormatter.stringFromDate(now)) // -> Tuesday, June 24, 2014

コード(JPロケールの場合)

let now = NSDate() // 現在日時の取得
let dateFormatter = NSDateFormatter()

dateFormatter.locale = NSLocale(localeIdentifier: "ja_JP") // ロケールの設定

dateFormatter.timeStyle = .NoStyle // 時刻のスタイルの設定
dateFormatter.dateStyle = .NoStyle // 日付のスタイルの設定
println(dateFormatter.stringFromDate(now)) // -> 出力されない

dateFormatter.timeStyle = .ShortStyle
dateFormatter.dateStyle = .ShortStyle
println(dateFormatter.stringFromDate(now)) // -> 2014/06/24 11:14

dateFormatter.timeStyle = .MediumStyle
dateFormatter.dateStyle = .MediumStyle
println(dateFormatter.stringFromDate(now)) // -> 2014/06/24 11:14:17

dateFormatter.timeStyle = .LongStyle
dateFormatter.dateStyle = .LongStyle
println(dateFormatter.stringFromDate(now)) // -> 2014年6月24日 11:14:17 JST

dateFormatter.timeStyle = .FullStyle
dateFormatter.dateStyle = .FullStyle
println(dateFormatter.stringFromDate(now)) // -> 2014年6月24日火曜日 11時14分17秒 日本標準時

dateFormatter.timeStyle = .NoStyle // 時刻だけ表示させない
dateFormatter.dateStyle = .FullStyle
println(dateFormatter.stringFromDate(now)) // -> 2014年6月24日火曜日

enumの省略記法

  • .NoStyle
  • .ShortStyle

などは、enumの省略記法で書いている。

本来は、enum型である「NSDateFormatterStyle」を先頭に付けて、

  • NSDateFormatterStyle.NoStyle
  • NSDateFormatterStyle.ShortStyle

と書く。

ただし、今回は、代入先であるNSDateFormatterクラスのインスタンスの

  • timeStyleプロパティ
  • dateStyleプロパティ

が、NSDateFormatterStyle型で宣言されているため、「NSDateFormatterStyle」部分を省略することができる。

参考文献

Foundation Framework Reference - NSDate

Foundation Framework Reference - NSDateFormatter

The Swift Programming Language - Enumerations

157
156
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
157
156