您的位置:首页 > 移动开发 > IOS开发

iOS中 与日期(NSData)相关的那些事儿

2013-12-14 22:43 155 查看
刚开始使用NSDate的时候 ,用[NSDatedate]取到的时间是格林威治时间,因为时差的问题不能满足本地使用需求,所以就需要通过一个方法,将时间转化一下,在网上找到了一个个人感觉比较好的方法,再此做一个分享

先定义一个宏 表示一整天的时间(s)

#define kAWholeDay 24 * 60 *60

- (void)viewDidLoad
{
[super viewDidLoad];
NSDate *yesterDate = [[NSDate alloc]initWithTimeIntervalSinceNow:-kAWholeDay * 1];
NSDate *todayDate = [NSDate date];
NSDate *tomorrowDate = [[NSDate alloc]initWithTimeIntervalSinceNow:kAWholeDay * 1];
NSDate *afterTomorrowDate = [[NSDate alloc]initWithTimeIntervalSinceNow:kAWholeDay * 2];
NSLog(@"昨天  %@",[self getDateStringWhichDay:yesterDate]);
NSLog(@"今天  %@",[self getDateStringWhichDay:todayDate]);
NSLog(@"明天  %@",[self getDateStringWhichDay:tomorrowDate]);
NSLog(@"后天  %@",[self getDateStringWhichDay:afterTomorrowDate]);
[yesterDate release];
[tomorrowDate release];
[afterTomorrowDate release];
}
-(NSString *)getDateStringWhichDay:(NSDate *)date
{
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy.MM.dd  EE HH:mm:ss SS a"];
NSString *dateString=[formatter stringFromDate:date];
[formatter release];
return dateString;
}


输出的内容如下

2013-12-14 23:15:42.810 NewTest[2614:70b] 昨天  2013.12.13  Fri 23:15:42 81 PM
2013-12-14 23:15:42.812 NewTest[2614:70b] 今天  2013.12.14  Sat 23:15:42 81 PM
2013-12-14 23:15:42.813 NewTest[2614:70b] 明天  2013.12.15  Sun 23:15:42 81 PM
2013-12-14 23:15:42.814 NewTest[2614:70b] 后天  2013.12.16  Mon 23:15:42 81 PM


 //大写的H日期格式将默认为24小时制,小写的h日期格式将默认为12小时

 //不需要特别设置,只需要在dataFormat里设置类似"yyyy-MMM-dd"这样的格式就可以了  

日期格式如下: 

y 年  Year  1996; 96 

M 年中的月份  Month  July; Jul; 07 

w 年中的周数  Number  27 

W 月份中的周数  Number  2 

D 年中的天数  Number  189 

d 月份中的天数  Number  10 

F 月份中的星期  Number  2 

E 星期中的天数  Text  Tuesday; Tue 

a  Am/pm标记  Text  PM 

H 一天中的小时数(0-23) 
Number  0 

k 一天中的小时数(1-24) 
Number  24 

K  am/pm中的小时数(0-11) 
Number  0 

h  am/pm中的小时数(1-12) 
Number  12 

m 小时中的分钟数  Number  30 

s 分钟中的秒数  Number  55 

S 毫秒数  Number  978 

z 时区  General time zone  Pacific Standard Time; PST; GMT-08:00 

Z 时区  RFC 822 time zone  -0800 */

yy:   年的后2位 

yyyy:完整年 

MM:   月,显示为1-12 

MMM:  月,显示为英文月份简写,如
Jan 

MMMM:月,显示为英文月份全称,如 Janualy 

dd:   日,2位数表示,如02 

d:    日,1-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

如果想了解的更多,请访问:http://blog.csdn.net/l_ch_g/article/details/8217725 

感谢原作者
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息