NSDate、NSString转换

// 获取本机时间

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

// String -> Date

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

NSDateFormatter*dateFormatter0 = [[NSDateFormatteralloc]init];

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

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

dateFormatter0.timeZone= [NSTimeZonetimeZoneWithName:@"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];

注意:NSDate只能获取到本机时间!

你可能感兴趣的:(NSDate、NSString转换)