刚开始使用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位显示,如 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
感谢原作者