1 获取当前时间
// 当前时间
NSDate *now = [NSDate date];
// 获取时间中的详细信息年、月、日、时、分、秒
NSCalendar *calendar = [NSCalendarcurrentCalendar];
NSUInteger unitFlags = NSYearCalendarUnit | NSMonthCalendarUnit |NSDayCalendarUnit | NSHourCalendarUnit|NSMinuteCalendarUnit | NSSecondCalendarUnit;
NSDateComponents *dateComponent = [calendarcomponents:unitFlags fromDate:now];
int year = [dateComponentyear];
int month = [dateComponentmonth];
int day = [dateComponentday];
int hour = [dateComponenthour];
int minute = [dateComponentminute];
int second = [dateComponentsecond];
2 字符串、时间相互转换
//字符串转换为日期
//实例化一个NSDateFormatter对象
NSDateFormatter* dateFormat = [[NSDateFormatter alloc] init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSDate *date =[dateFormat dateFromString:@"1980-01-01 00:00:01"];
//日期转换为字符串
//实例化一个NSDateFormatter对象
NSDateFormatter* dateFormat = [[NSDateFormatteralloc] init];
//设定时间格式,这里可以设置成自己需要的格式
[dateFormat setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *currentDateStr = [dateFormatter stringFromDate:[NSDate date]];
3 时间设置 dateFormat 格式注意事项
① 年 设置格式为 yyyy, 苹果开发文档中明确指出
It uses yyyy to specify the year component. A common mistake is to use YYYY. yyyy specifies the calendar year whereas YYYY specifies the year (of “Week of Year”), usedin the ISO year-week calendar. In most cases, yyyy and YYYY yield the same number, however they may be different. Typically you should use the calendar year.
年份如果用大Y会是这周的年份,小y才是标准的年份例如2013年12月29号开始,如果用大Y的话就是2014年的第一周了,年份会转成2014
虽然不一定会出错,但是为了安全,还是使用yyyy 比较可靠。
② iOS-NSDateFormatter 格式说明:
G: 公元时代,例如AD公元
yy: 年的后2位
yyyy: 完整年
MM: 月,显示为1-12
MMM: 月,显示为英文月份简写,如 Jan
MMMM: 月,显示为英文月份全称,如 Janualy
dd: 日,2位数表示,如02
d: 日,1-2位显示,如2
EEE: 简写星期几,如Sun
EEEE: 全写星期几,如Sunday
aa: 上下午,AM/PM
H: 时,24小时制,0-23
K:时,12小时制,0-11
m: 分,1-2位
mm: 分,2位
s: 秒,1-2位
ss: 秒,2位
S: 毫秒
常用日期结构:
yyyy-MM-dd HH:mm:ss.SSS
yyyy-MM-dd HH:mm:ss
yyyy-MM-dd
MM dd yyyy