@interface ViewController ()
{
NSString *_dateString;//時間戳
}
@end
- (void)viewDidLoad {
[super viewDidLoad];
//1.獲取到當前時區(qū)的當前時間
[self getCurrentDateOfLocalZone];
//2.獲取當前時間戳
//時間戳是指格林威治時間1970年01月01日00時00分00秒起至現(xiàn)在的總秒數(shù)
[self getCurrentDateString];
//3.根據(jù)時間戳轉(zhuǎn)換成對應的日期和時間
[self accordingDateStringTranslatedCurrentDate];
}
- (void)getCurrentDateOfLocalZone {
NSDate *date = [NSDate date];
//初始化時間顯示格式
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//給時間格式設(shè)置時區(qū)
NSTimeZone *zone = [NSTimeZone localTimeZone];
[dateFormatter setTimeZone:zone];
[dateFormatter setDateFormat:@"YYYY:MM:dd-HH:mm:ss"];
NSString *timeString = [dateFormatter stringFromDate:date];
NSLog(@"當前時間=%@",timeString);
}
- (void)getCurrentDateString {
//時區(qū)
//NSTimeZone *zone = [NSTimeZone localTimeZone];
//當前時區(qū)和格林威治時區(qū)的時間差 8小時
//NSTimeInterval timeInterval = [zone secondsFromGMTForDate:[NSDate date]];
//格林威治時間到現(xiàn)在的秒數(shù)
NSString *sumString = [NSString stringWithFormat:@"%f",[[NSDate date] timeIntervalSince1970]];
//截取小數(shù)點前的數(shù)
NSString *dateString = [[sumString componentsSeparatedByString:@"."] objectAtIndex:0];
//獲取到時間戳
_dateString = dateString;
NSLog(@"時間戳=%@",dateString);
NSLog(@"sumString=%@",sumString);
}
- (void)accordingDateStringTranslatedCurrentDate {
//把時間戳轉(zhuǎn)化為日期
NSDate *date = [NSDate dateWithTimeIntervalSince1970:[_dateString intValue]];
//時間格式
NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
//時區(qū)
NSTimeZone *zone = [NSTimeZone localTimeZone];
[dateFormatter setTimeZone:zone];
[dateFormatter setDateFormat:@"yyyy:MM:dd-HH:mm:ss"];
NSString *currentDate = [dateFormatter stringFromDate:date];
NSLog(@"根據(jù)時間戳轉(zhuǎn)換為日期和時間=%@",currentDate);
}
NSDateFormatter的格式介紹
G -- 紀元
一般會顯示公元前(BC)和公元(AD)
y -- 年
假如是2013年,那么yyyy=2013纤控,yy=13
M -- 月
假如是3月吟宦,那么M=3厦滤,MM=03片任,MMM=Mar逗概,MMMM=March
假如是11月夺克,那么M=11箕宙,MM=11,MMM=Nov铺纽,MMMM=November
w -- 年包含的周
假如是1月8日柬帕,那么w=2(這一年的第二個周)
W -- 月份包含的周(與日歷排列有關(guān))
假如是2013年4月21日,那么W=4(這個月的第四個周)
F -- 月份包含的周(與日歷排列無關(guān))
和上面的W不一樣狡门,F(xiàn)只是單純以7天為一個單位來統(tǒng)計周陷寝,例如7號一定是第一個周,15號一定是第三個周其馏,與日歷排列無關(guān)凤跑。
D -- 年包含的天數(shù)
假如是1月20日,那么D=20(這一年的第20天)
假如是2月25日叛复,那么D=31+25=56(這一年的第56天)
d -- 月份包含的天數(shù)
假如是5號仔引,那么d=5扔仓,dd=05
假如是15號,那么d=15咖耘,dd=15
E -- 星期
假如是星期五翘簇,那么E=Fri,EEEE=Friday
a -- 上午(AM)/下午(PM)
H -- 24小時制鲤看,顯示為0--23
假如是午夜00:40缘揪,那么H=0:40耍群,HH=00:40
h -- 12小時制义桂,顯示為1--12
假如是午夜00:40,那么h=12:40
K -- 12小時制蹈垢,顯示為0--11
假如是午夜00:40慷吊,那么K=0:40,KK=00:40
k -- 24小時制曹抬,顯示為1--24
假如是午夜00:40溉瓶,那么k=24:40
m -- 分鐘
假如是5分鐘,那么m=5谤民,mm=05
假如是45分鐘堰酿,那么m=45,mm=45
s -- 秒
假如是5秒鐘张足,那么s=5触创,ss=05
假如是45秒鐘,那么s=45为牍,ss=45
S -- 毫秒
一般用SSS來顯示
z -- 時區(qū)
表現(xiàn)形式為GMT+08:00
Z -- 時區(qū)
表現(xiàn)形式為+0800