有一個場景,我的手機隨時會收到推送消息(Push Notification),不論App有沒有打開,我都會保存在本地數據庫,比如SQLite 3,保存推送消息的時候,我需要知道是什麼時候收到推送消息的,於是我就需要用到,獲取當前時間的方法。
首先,準備好數據庫
1 2 3 4 5 6 7 8 9 |
FMDatabase *db = [[FMDatabase alloc]initWithPath:DBPath]; if(![db open]){ NSLog(@"open db error when initDB"); return; } //Push Info表 NSString *sql = @"CREATE Table PushInfo (push_type VARCHAR(50), push_id VARCHAR(255), is_checked TINYINT(1), push_title VARCHAR(100), push_message VARCHAR(255), push_time TIMESTAMP)"; [db executeUpdate:sql]; [db close]; |
當我收到通知訊息的時候,取得當前時間的方法
1 2 |
NSInteger time = [[NSDate date] timeIntervalSince1970]; NSNumber *pushTime = [NSNumber numberWithInteger:time]; |
從數據庫中拿出時間,改成自己要的格式
1 2 3 4 |
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[[set objectForColumnName:@"push_time"] integerValue]]; NSDateFormatter *dateFormatter = [[NSDateFormatter alloc]init]; [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"]; NSString *pushTime = [dateFormatter stringFromDate:date]; |
介紹下過程
- [[NSDate date] timeIntervalSince1970] ,這個方法就是獲取1970至當前的秒數。
- 然後用NSDate dateWithTimeIntervalSince1970:(NSTimeInterval)來創建NSDate,
- 然後通過NSDateFormatter來轉換成自己想要的格式。