IOS获取当前时间
在IOS开发中,获取当前时间是一个常见的需求。iOS系统内置了时间相关的API,可以方便地获取当前时间、日期、时间戳等。本文将介绍如何在iOS开发中获取当前时间。
一. 获取当前时间
获取当前时间有多种方式,下面分别介绍:
1. 使用系统日期时间
首先需要导入头文件:
#import <Foundation/Foundation.h>
然后可以使用如下代码获取当前时间:
NSDate *now = [NSDate date];
获取的是当前日期和时间,包括年、月、日、时、分、秒等信息。
2. 使用C函数获取时间
另一种获取当前时间的方法是使用C函数。
2.1 获取当前时间戳
时间戳是指从1970年1月1日0时0分0秒,到当前时间的总秒数。获取时间戳的方式如下:
NSDate *now = [NSDate date]; NSTimeInterval timestamp = [now timeIntervalSince1970];
其中,NSTimeInterval是一个double类型的浮点数。获取到的时间戳精确到毫秒级别。
2.2 获取当前日期和时间
获取当前日期和时间(即年、月、日、时、分、秒)的方式如下:
time_t now; struct tm *timeinfo; char buffer[80]; time(&now); timeinfo = localtime(&now); strftime(buffer, 80, "%Y-%m-%d %H:%M:%S", timeinfo); NSString *datetime = [NSString stringWithCString:buffer encoding:NSUTF8StringEncoding];
其中,time_t类型表示自1970年1月1日00:00:00 UTC以来的秒数。localtime函数将time_t类型的时间转换为C中自然的tm结构体。strftime函数将转换后的时间格式化。
3. 获取当前日期
获取当前日期的方式如下:
NSDate *now = [NSDate date]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyy-MM-dd"]; NSString *dateString = [dateFormat stringFromDate:now];
NSDateFormatter是用于日期格式化的类,setDateFormat方法设置日期格式,stringFromDate方法将NSDate类型的日期转换为字符串类型。
4. 获取当前时间
获取当前时间的方式如下:
NSDate *now = [NSDate date]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"HH:mm:ss"]; NSString *timeString = [dateFormat stringFromDate:now];
5. 获取本地化日期时间
获取本地化日期时间的方式如下:
NSDate *now = [NSDate date]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateStyle:NSDateFormatterMediumStyle]; [dateFormat setTimeStyle:NSDateFormatterShortStyle]; NSString *localDateTimeString = [dateFormat stringFromDate:now];
其中,setDateStyle和setTimeStyle方法用于设置日期时间的样式,NSDateFormatterMediumStyle和NSDateFormatterShortStyle是定义好的样式常量。
6. 获取星期几
获取星期几的方式如下:
NSDate *now = [NSDate date]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"EEEE"]; NSString *weekdayString = [dateFormat stringFromDate:now];
其中,EEEE表示星期几的全称,如Monday、Tuesday等。
二. 时间格式化
NSDateFormatter类提供了日期和时间的格式化功能,在设置日期时间格式时需要注意格式和占位符的使用。
1. 日期格式
日期格式化可以使用以下占位符:
占位符 含义
yyyy 年份(四位数)
yy 年份(两位数)
MM 月份(01 - 12)
M 月份(1 - 12)
dd 日期(01 - 31)
d 日期(1 - 31)
EEE 星期几(Mon、Tue等)
EEEE 星期几(Monday、Tuesday等)
a 上午/下午(AM、PM)
zzz 时区
例如,将时间格式化为“2018年06月23日”可以使用如下代码:
NSDate *date = [NSDate date]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"yyyy年MM月dd日"]; NSString *dateString = [dateFormat stringFromDate:date];
2. 时间格式
时间格式化可以使用以下占位符:
占位符 含义
HH 小时(00 - 23)
H 小时(0 - 23)
hh 小时(01 - 12)
h 小时(1 - 12)
mm 分钟(00 - 59)
m 分钟(0 - 59)
ss 秒(00 - 59)
s 秒(0 - 59)
a 上午/下午(AM、PM)
zzz 时区
例如,将时间格式化为“下午01:30”可以使用如下代码:
NSDate *date = [NSDate date]; NSDateFormatter *dateFormat = [[NSDateFormatter alloc] init]; [dateFormat setDateFormat:@"aHH:mm"]; NSString *timeString = [dateFormat stringFromDate:date];
三. 总结
本文介绍了在iOS开发中获取当前时间、日期、时间戳等的方法,以及日期时间的格式化。使用NSDate类和NSDateFormatter类可以方便地进行日期时间的处理,能够满足大多数开发需求。
