一、什麼是時間戳
時間戳(Timestamp)是指格林威治時間1970年01月01日00時00分00秒起至現在的總秒數。時間戳是一種時間表示方式,通常是一個整數。在計算機中廣泛使用時間戳,例如Unix操作系統使用時間戳來記錄文件的創建、修改,以及用戶的登錄和註銷時間等。
二、iOS中如何獲取時間戳
1.使用NSDate對象獲取當前的時間戳
//獲取當前時間的時間戳,單位:秒
NSTimeInterval currentTimeInterval = [[NSDate date] timeIntervalSince1970];
2.使用時間戳獲取NSDate對象
//將時間戳轉換成NSDate對象
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
三、iOS時間戳和時間的轉換
1.時間戳轉換成指定格式的時間字元串
//將時間戳轉換成指定格式的時間字元串
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSString *timeString = [formatter stringFromDate:date];
2.指定格式的時間字元串轉換成時間戳
//將指定格式的時間字元串轉換成時間戳
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date = [formatter dateFromString:timeString];
NSTimeInterval timeInterval = [date timeIntervalSince1970];
四、時區問題
iOS中時間戳的默認時區是UTC時間,需要進行時區轉換才能得到本地時間。在使用NSDateFormatter時,需要設置NSDateFormatter的timeZone屬性,指定轉換的時區。例如,將UTC時間轉換成北京時間,需要設置timeZone為北京時區。
//將UTC時間轉換成北京時間
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
[formatter setTimeZone:[NSTimeZone timeZoneWithName:@"Asia/Shanghai"]];
NSDate *date = [NSDate dateWithTimeIntervalSince1970:timeInterval];
NSString *timeString = [formatter stringFromDate:date];
五、時區名稱和時區縮寫的轉換
iOS中的時區使用封裝在NSTimeZone中的實例來表示,有時需要根據時區名稱或時區縮寫獲取對應的NSTimeZone實例。同時,也需要將NSTimeZone實例轉換成時區名稱或時區縮寫,以便在界面中顯示。
1.時區名稱轉換成NSTimeZone實例
NSString *timeZoneName = @"Asia/Shanghai";
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:timeZoneName];
2.時區縮寫轉換成NSTimeZone實例
NSString *timeZoneAbbreviation = @"GMT+0800";
NSTimeZone *timeZone = [NSTimeZone timeZoneWithAbbreviation:timeZoneAbbreviation];
3.NSTimeZone實例轉換成時區名稱
NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];
NSString *timeZoneName = [timeZone name];
4.NSTimeZone實例轉換成時區縮寫
NSTimeZone *timeZone = [NSTimeZone timeZoneWithAbbreviation:@"GMT+0800"];
NSString *timeZoneAbbreviation = [timeZone abbreviation];
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/307446.html