格式化时间表示
NSCalendar *calendar = [NSCalendar currentCalendar];
NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
formatter.dateFormat = @"MMMM dd, yyyy cccc H:m a";
formatter.calendar = calendar;
NSLog(@"%@", [formatter stringFromDate:[NSDate date]]);
其中常用占位符及含义如下:
d 日, dd 表示不足两位时用0占位
M 月份, 数字形式; MM 不足两位用前导0占位; MMM 缩写形式(如 Jan); MMMM 完整形式(如 January).
yyyy 年份
cccc 周几 (如 Tuesday)
H 小时
m 分钟
s 秒
a 上午/下午(如 AM)
格式化的结果是根据系统语言来本地化的, 比如 MMMM 在简体中文时会生成八月
转到当前默认时区
NSTimeInterval someDate = ...;
NSDate *date = [NSDate dateWithTimeIntervalSince1970:someDate];
NSInteger ticks = [[NSTimeZone defaultTimeZone] secondsFromGMT];
date = [date dateByAddingTimeInterval:ticks];
// 没有找到更好的方法, 这里只是用当前默认时区相对GMT偏移的秒数加
// 上去得到一个当前时区的时间表示. 不知道有没有更合适直接的方法来完成.
获取今天的开始时间
NSCalendar 提供了 startOfDayForDate 接口直接完成该功能
NSDate *today = [[NSCalendar currentCalendar] startOfDayForDate:[NSDate date]];
// 相应的, 明天的开始可以在today基础上加上一天的秒数即可
NSDate *tommorror = [today dateByAddingTimeInterval:60.0 * 60.0 * 24.0];
网友评论