获取当前日期
Swift
let date = Date()
OC
NSDate *date = [NSDate date];
日期转时间戳
Swift
let ti = date.timeIntervalSince1970
OC
NSTimeInterval ti = [date timeIntervalSince1970];
注:时间戳(TimeInterval)为 Double 类型
时间戳转日期
Swift
let date1 = Date.init(timeIntervalSince1970: ti)
OC
NSDate *date1 = [NSDate dateWithTimeIntervalSince1970:ti];
日期转字符串
Swift
func dateToStr() {
let date = Date()
let df = DateFormatter.init()
df.amSymbol = "上午"
df.pmSymbol = "下午"
df.weekdaySymbols = ["星期日","星期一","星期二","星期三","星期四","星期五","星期六"]
df.dateFormat = "yyyy年MM月dd日 EEEE aaa HH:mm"
let dateStr = df.string(from: date)
print("时间:",dateStr)
}
OC
-(void)dateToStr{
NSDate *date = [NSDate date];
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.AMSymbol = @"上午";
df.PMSymbol = @"下午";
df.weekdaySymbols = @[@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六",@"星期日"];
df.dateFormat = @"yyyy年MM月dd日 EEEE aaa HH:mm";
NSString *dateStr = [df stringFromDate:date];
NSLog(@"时间:%@",dateStr);
}
字符串转日期
Swift
func strToDate() {
let str = "2020年09月10日 星期五 下午 15:19"
let df = DateFormatter.init()
df.amSymbol = "上午"
df.pmSymbol = "下午"
df.weekdaySymbols = ["星期一","星期二","星期三","星期四","星期五","星期六","星期日"]
df.dateFormat = "yyyy年MM月dd日 EEEE aaa HH:mm"
let date = df.date(from: str)
print("日期:",date)
}
OC
-(void)strToDate{
NSString *dateStr = @"2020年09月10日 星期五 下午 15:24";
NSDateFormatter *df = [[NSDateFormatter alloc] init];
df.AMSymbol = @"上午";
df.PMSymbol = @"下午";
df.weekdaySymbols = @[@"星期一",@"星期二",@"星期三",@"星期四",@"星期五",@"星期六",@"星期日"];
df.dateFormat = @"yyyy年MM月dd日 EEEE aaa HH:mm";
NSDate *date = [df dateFromString:dateStr];//可能为空
NSLog(@"日期:%@",date);
}
划重点
- DateFormatter用于日期与字符串的相互转换。
- DateFormatter对象的
*Symbol
属性可以用来设置我们显示的日期的样式! - 上述例子中
AMSymbol
PMSymbol
weekdaySymbols
分别设置了上下午、星期的显示方式。 - DateFormatter还有很多
*Symbol
属性,有兴趣的朋友可以一一尝试。
注:字符串转日期得到的时间与实际时间并不符合!因为有个重要的因素
时区
NSTimeZone
我们没有考虑!在此不做深入研究😂