欢迎访问宙启技术站
智能推送

IOS获取当前时间

发布时间:2023-05-17 17:05:45

在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类可以方便地进行日期时间的处理,能够满足大多数开发需求。