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


刚开始使用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"这样的格式就可以了  

日期格式如下

  Year  1996; 96 

年中的月份  Month  July; Jul; 07 

年中的周数  Number  27 

月份中的周数  Number  2 

年中的天数  Number  189 

月份中的天数  Number  10 

月份中的星期  Number  2 

星期中的天数  Text  Tuesday; Tue 

a  Am/pm标记  Text  PM 

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

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

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

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

小时中的分钟数  Number  30 

分钟中的秒数  Number  55 

毫秒数  Number  978 

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

时区  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 

感谢原作者




你可能感兴趣的:(日期,格式,时区,ios开发,NSDate)