HOME > NSDate
日付を管理するクラスです。よく使いますがよく忘れてしまいますのでメモ。初期化の方法や日付の比較のサンプルを掲載します。
NSObject
↑
NSDate
参考:Foundation Framework Reference NSDate Class Reference
初期化処理を解説します
//シンプルに宣言するだけで現在時刻のNSDateを作成できます。
var date:NSDate = NSDate();
var date:NSDate = NSDate();
date = NSDate(timeIntervalSinceNow: 60);//1分後
date = NSDate(timeIntervalSinceNow: 60*60);//1時間
date = NSDate(timeIntervalSinceNow: 24*60*60);//1日後
date = NSDate(timeIntervalSinceNow: 7*24*60*60);//一週間後
date = NSDate(timeIntervalSinceNow: -7*24*60*60);//一週間前
var date:NSDate = NSDate();
date = NSDate(timeIntervalSinceReferenceDate: 60);//2001年の1月1日9時(GMT)から1分後。日本の開発環境なので、9時になります。
var date:NSDate = NSDate();
date = NSDate(timeIntervalSince1970: 60);//1970年の1月1日9時(GMT)から1分後。日本の開発環境なので、9時になります。
//2015年1月1日12時34分56秒のNSDateを作成
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss";
let dateOf2015_01_01_12_34_56 = dateFormatter.dateFromString("2015-01-01 12:34:56")!;
var date:NSDate = NSDate();
date = NSDate(timeInterval: 60, sinceDate: dateOf2015_01_01_12_34_56);//2015年1月1日12:34分より1分後
日付の参照(YYYYとかMMとか、、、)はこちらのサイトが便利です。Formatting Dates and Times
let date = NSDate()
let calendar = NSCalendar(identifier: NSGregorianCalendar);//和暦を使いたいときはidentifierにはNSJapaneseCalendarを指定
var comps:NSDateComponents? = calendar?.components(NSCalendarUnit.YearCalendarUnit|NSCalendarUnit.MonthCalendarUnit|NSCalendarUnit.DayCalendarUnit|NSCalendarUnit.HourCalendarUnit|NSCalendarUnit.MinuteCalendarUnit|NSCalendarUnit.SecondCalendarUnit,fromDate: date);
comps?.day -= 7;//7日前。一週間前。このあたりで日付を調整します。
let dateAweekAgo = comps?.date;//現在時刻から一週間前のNSDate
let today:NSDate = NSDate();
let date_formatter: NSDateFormatter = NSDateFormatter();
date_formatter.locale = NSLocale(localeIdentifier: "ja");
let weekdays:Array = ["", "日", "月", "火", "水", "木", "金", "土"]
let calendar = NSCalendar.currentCalendar();
let comps = calendar.components([.Year, .Month, .Day, .Weekday, .Hour, .Minute, .Second, .Nanosecond], fromDate: today);
date_formatter.dateFormat = "yyyy年MM月dd日(\(weekdays[comps.weekday])) HH時mm分ss秒"
print(date_formatter.stringFromDate(today)) // 2015年10月19日(月) 20時14分14秒
compare関数を利用して日付の大小を判断します
//date2014とdate2015を比較
import Foundation
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd hh:mm:ss";
let date2014 = dateFormatter.dateFromString("2014-01-01 12:34:56")!;
let date2015 = dateFormatter.dateFromString("2015-01-01 12:34:56")!;
if (date2014.compare(date2015) == NSComparisonResult.OrderedDescending){
print("- 日付が対象より古い");
}else if (date2014.compare(date2015) == NSComparisonResult.OrderedAscending){
print("- 日付が対象より新しい");//上記の場合、date2014の方が2015年よりも小さいのでここにきます。
}else{
print("- 日付が同じです");
}
関連記事は以下からどうぞ。
2021-05-14 14:21:41 | WatchOSのwatchconnectivityのFiletransferの落とし穴。と、避け方。
AppleWatch 実機だと成功するんだけど、シュミレーターだと失敗するという、、、
昔作成してた時は成功してたのになーと思って調べると、どうやら昔は成功してたみたい。watchOS6以降は... |
2021-05-06 14:04:37 | LINEのアニメーションスタンプ制作の落とし穴、、、失敗談
ゴールデンウィークにLINEスタンプを作成してみました。
作り切って申請も通したんですが、意図したアニメーションと違う、、、、
LINEクリエーターの画面だと、アニメーションのプレビュー... |
2021-05-01 18:05:35 | 久しぶりのAdmobをobjective-cに実装。コンパイルエラーだらけ。バーミッション不具合でエミュレータにインスコできない。
忘れないようにメモ
エミュレータにアプリをインストールする際にパーミッション系のエラーがでた時、また、iphone実機にインストールする際にも権限系のエラーが出る場合。
ターゲット→ex... |
Tweet | |||
|