iOS:NSDate和NSString转换注意事项(菜鸟教程)

// 获取本机时间

NSDate *nowDate = [[NSDate alloc] init];

// String -> Date

NSString *dateStr = @"2022-09-13 00:00:00";

NSDateFormatter*dateFormatter0 = [[NSDateFormatter alloc]init];

dateFormatter0.dateFormat=@"yyyy-MM-dd HH:mm:ss";

// 代表 2022-09-13 00:00:00 是 Asia/Shanghai 时区的时间

dateFormatter0.timeZone= [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];

// noID_date 为本机时间,如果本机是 Asia/Shanghai 时区,则 noID_date 为 2022-09-13 00:00:00

// 如果本机是 America/New_York 时区(西四区),则noID_date 为 2022-09-12 12:00:00

NSDate*noID_date = [dateFormatter0 dateFromString:dateStr];

// Date -> String

NSDateFormatter *dateFormatter0 = [[NSDateFormatter alloc] init];

dateFormatter0.dateFormat = @"yyyy-MM-dd HH:mm:ss";

dateFormatter0.timeZone = [NSTimeZone timeZoneWithName:@"Asia/Shanghai"];

// 本机时间

NSDate *nowDate = [[NSDate alloc] init];

// 如果本机是 Asia/Shanghai 时区,则 nowDate 数值和 dateStr2一致

// 如果本机是 America/New_York 时区(西四区),则 dateStr2 比 nowDate 大12小时

// 例如:

// nowDate(西四区):Tue Sep 13 03:07:41 2022 

// 则dateStr2(为东八区,因为dateFormatter0的timeZone为Asia/Shangha):“2022-09-13 15:07:41”

// dateStr2为dateFormatter0对应的timeZone的时间

NSString *dateStr2 = [dateFormatter0 stringFromDate:nowDate];
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值