关于NSDate和NSCalendar的一些基本使用
2014-02-25 11:14
447 查看
1、NSCalendar//首先创建NSCalendar的实例,可以简单的用当前实例,也可以创建其它的历法对应的实例。NSCalendar *cal = [NSCalendar currentCalendar];//下面通过NSCalendar来获取各个元素,保存在类NSDateComponents的实例中//需要通过函数参数components指定希望获取的元素,详细的枚举后面会列出NSDate *startDate = [[NSDatenew] autorelease];NSDateComponents *dateComps = [cal components:NSYearCalendarUnit|NSMonthCalendarUnit|NSDayCalendarUnit|NSHourCalendarUnit|NSMinuteCalendarUnit fromDate:startDate];int year = [dateCompsyear];int month = [dateCompsmonth];int day = [dateCompsday];int hour = [dateCompshour];int minute = [dateCompsminute];int second = [dateCompssecond];
NSLog(@"%d-%d-%d-%d-%d-%d",year,month,day,hour,minute,second);打印:2013-3-19-17-2-2147483647【这个打印出来的跟实际北京时间是一样的】
NSDate *newDate = [cal dateFromComponents:dateComps];NSLog(@"%@",newDate);打印:2013-03-1909:02:00 +0000【和北京时间相差8小时,北京时间=GMT时间+8小时】
2、NSDate
NSDate *date = [NSDate date];NSLog(@"%@",date);打印:2013-03-1909:02:00 +0000【和北京时间相差8小时,北京时间=GMT时间+8小时】
转成正确的北京时间:NSDate *date = [NSDate date];NSDateFormatter *formater = [[[NSDateFormatteralloc] init]autorelease];formater.timeZone = [NSTimeZone systemTimeZone];//无效[formater setDateFormat:@"yyyy-MM-dd hh:mm:ss"];NSString *timestr = [formater stringFromDate: date];
NSLog(@"sss:%@",timestr);打印:2013-03-1905:09:34//这个根据系统设置的时间【是否24小时制】显示方式来,2013-03-19 17:12:19或者2013-03-19 05:09:34
3、验证:北京时间=GMT时间+8小时
NSDate *date = [NSDate date];[self getGMTTimeStr:date];- (NSString*)getGMTTimeStr:(NSDate *)oriDate {NSDateFormatter *formater = [[NSDateFormatteralloc] init]; [formater setDateFormat:@"yyyy-MM-dd hh:mm:ss"];NSString *timestr = [formater stringFromDate:oriDate];int interval = [[NSTimeZonesystemTimeZone] secondsFromGMTForDate:oriDate];NSDate *gmtDate = [oriDate dateByAddingTimeInterval:-interval];NSString *gmttimestr = [formater stringFromDate:gmtDate];NSLog(@"oriTime vs. gmtTime: %@, %@",timestr,gmttimestr);return gmttimestr;}打印:oriTime vs. gmtTime: 2013-03-1917:12:00, 2013-03-1909:12:00
4、NSDateFormatter格式化参数相关
格式化参数如下:G: 公元时代,例如AD公元yy: 年的后2位yyyy: 完整年MM: 月,显示为1-12MMM: 月,显示为英文月份简写,如 Jan//跟系统语言版本有关系,中文显示“3月”,英文显示“Jan”MMMM: 月,显示为英文月份全称,如 Janualy//跟系统语言版本有关系,中文显示“3月”,英文显示“Jan”dd: 日,2位数表示,如02d: 日,1-2位显示,如2EEE: 简写星期几,如SunEEEE: 全写星期几,如Sundayaa: 上下午,AM/PMH: 时,24小时制,0-23K:时,12小时制,0-11m: 分,1-2位mm: 分,2位s: 秒,1-2位ss: 秒,2位S: 毫秒
NSLog(@"%d-%d-%d-%d-%d-%d",year,month,day,hour,minute,second);打印:2013-3-19-17-2-2147483647【这个打印出来的跟实际北京时间是一样的】
NSDate *newDate = [cal dateFromComponents:dateComps];NSLog(@"%@",newDate);打印:2013-03-1909:02:00 +0000【和北京时间相差8小时,北京时间=GMT时间+8小时】
2、NSDate
NSDate *date = [NSDate date];NSLog(@"%@",date);打印:2013-03-1909:02:00 +0000【和北京时间相差8小时,北京时间=GMT时间+8小时】
转成正确的北京时间:NSDate *date = [NSDate date];NSDateFormatter *formater = [[[NSDateFormatteralloc] init]autorelease];formater.timeZone = [NSTimeZone systemTimeZone];//无效[formater setDateFormat:@"yyyy-MM-dd hh:mm:ss"];NSString *timestr = [formater stringFromDate: date];
NSLog(@"sss:%@",timestr);打印:2013-03-1905:09:34//这个根据系统设置的时间【是否24小时制】显示方式来,2013-03-19 17:12:19或者2013-03-19 05:09:34
3、验证:北京时间=GMT时间+8小时
NSDate *date = [NSDate date];[self getGMTTimeStr:date];- (NSString*)getGMTTimeStr:(NSDate *)oriDate {NSDateFormatter *formater = [[NSDateFormatteralloc] init]; [formater setDateFormat:@"yyyy-MM-dd hh:mm:ss"];NSString *timestr = [formater stringFromDate:oriDate];int interval = [[NSTimeZonesystemTimeZone] secondsFromGMTForDate:oriDate];NSDate *gmtDate = [oriDate dateByAddingTimeInterval:-interval];NSString *gmttimestr = [formater stringFromDate:gmtDate];NSLog(@"oriTime vs. gmtTime: %@, %@",timestr,gmttimestr);return gmttimestr;}打印:oriTime vs. gmtTime: 2013-03-1917:12:00, 2013-03-1909:12:00
4、NSDateFormatter格式化参数相关
格式化参数如下:G: 公元时代,例如AD公元yy: 年的后2位yyyy: 完整年MM: 月,显示为1-12MMM: 月,显示为英文月份简写,如 Jan//跟系统语言版本有关系,中文显示“3月”,英文显示“Jan”MMMM: 月,显示为英文月份全称,如 Janualy//跟系统语言版本有关系,中文显示“3月”,英文显示“Jan”dd: 日,2位数表示,如02d: 日,1-2位显示,如2EEE: 简写星期几,如SunEEEE: 全写星期几,如Sundayaa: 上下午,AM/PMH: 时,24小时制,0-23K:时,12小时制,0-11m: 分,1-2位mm: 分,2位s: 秒,1-2位ss: 秒,2位S: 毫秒
相关文章推荐
- 关于使用PDO连接数据库的一些基本操作
- java 关于使用java1.8的localDateTime日期操作的基本使用以及一些使用技巧 持续更新...
- 关于git的一些使用方法和基本命令
- 一些关于git的基本使用方法
- 关于多线程的使用一些基本介绍
- 关于金蝶K3系统(工业)供应链部分,使用前需要基本了解的一些信息
- MySQL中关于临时表的一些基本使用方法
- MySQL中关于临时表的一些基本使用方法
- 南大软院大神养成计划——关于DreamweaverCS6的一些基本使用方法
- 关于Sqlite的一些基本语句使用
- 关于jquery的一些基本使用
- 关于PHP使用redis服务的一些基本使用心得
- 关于NSDate、NSDateFormatter和NSCalendar的使用
- 关于git的一些基本使用命令
- 关于CoordinatorLayout的一些使用经验
- 关于UISearchDisplayController的一些使用经验分享
- 关于在DELPHI6中使用正则表达式的一些心得
- 关于C#使用XML序列化的一些注意事项
- 关于Java script 定时器(timer)的一些使用
- 关于使用PRO*C编程的一些简单说明和例子