Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
157
Help us understand the problem. What is going on with this article?
@cotrpepe

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

More than 5 years have passed since last update.

開発環境

  • 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
Help us understand the problem. What is going on with this article?
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away

Comments

No comments
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login
157
Help us understand the problem. What is going on with this article?