NSDateFormatter 添加多余的时间
NSDateFormatter adds excess time
我正在尝试以 MMMM dd, EEEE 格式获取当前日期。这就是我所做的
NSDate *utc = [[NSDate alloc] init];
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
NSTimeInterval timeZoneSeconds = [[NSTimeZone localTimeZone] secondsFromGMT];
NSDate *DateInLocalTimezone = [utc dateByAddingTimeInterval:timeZoneSeconds];
fmt.dateFormat = @"MMMM dd, EEEE";
NSString *currentDate = [fmt stringFromDate:DateInLocalTimezone];
给定,
- utc = 2016-10-07 08:55:55 +0000
- 时区 = gmt+8
- DateInLocalTimezone = 2016-10-07 16:55:55 +0000
- currentDate = 10 月 8 日,星期六
currentDate 必须是 10 月 7 日,星期五。为什么在我格式化日期时它会添加另一天?
试试这个:
NSDate *now = NSDate.date;
NSDateFormatter *fmt = NSDateFormatter.new;
fmt.dateFormat = @"MMMM dd, EEEE";
NSString *currentDate = [fmt stringFromDate:now];
NSDateFormatter
已经处理时区问题。由于您之前 NSDate
增加了 8 小时,因此您实际上增加了两次 8 小时。
现在,提示:
NSDate
是一个时间点。它计算自参考日期以来经过了多少秒(我相信它是 1970 年 1 月 1 日 00:00 GMT)。如果您确实想引用该点之前或之后的时间,则仅更改 NSDate
。将 NSDate
视为时间机器。如果你在phone之前和住在海外的朋友通话,你们可能会在不同的时区,所以时钟显示的时间会不同,但你们会在同一时间点。
如果要处理时区,请使用NSCalendar
或NSDateFormatter
。他们不仅可以处理时区,还可以处理夏令时和一些东方日历。
我正在尝试以 MMMM dd, EEEE 格式获取当前日期。这就是我所做的
NSDate *utc = [[NSDate alloc] init];
NSDateFormatter *fmt = [[NSDateFormatter alloc] init];
NSTimeInterval timeZoneSeconds = [[NSTimeZone localTimeZone] secondsFromGMT];
NSDate *DateInLocalTimezone = [utc dateByAddingTimeInterval:timeZoneSeconds];
fmt.dateFormat = @"MMMM dd, EEEE";
NSString *currentDate = [fmt stringFromDate:DateInLocalTimezone];
给定,
- utc = 2016-10-07 08:55:55 +0000
- 时区 = gmt+8
- DateInLocalTimezone = 2016-10-07 16:55:55 +0000
- currentDate = 10 月 8 日,星期六
currentDate 必须是 10 月 7 日,星期五。为什么在我格式化日期时它会添加另一天?
试试这个:
NSDate *now = NSDate.date;
NSDateFormatter *fmt = NSDateFormatter.new;
fmt.dateFormat = @"MMMM dd, EEEE";
NSString *currentDate = [fmt stringFromDate:now];
NSDateFormatter
已经处理时区问题。由于您之前 NSDate
增加了 8 小时,因此您实际上增加了两次 8 小时。
现在,提示:
NSDate
是一个时间点。它计算自参考日期以来经过了多少秒(我相信它是 1970 年 1 月 1 日 00:00 GMT)。如果您确实想引用该点之前或之后的时间,则仅更改 NSDate
。将 NSDate
视为时间机器。如果你在phone之前和住在海外的朋友通话,你们可能会在不同的时区,所以时钟显示的时间会不同,但你们会在同一时间点。
如果要处理时区,请使用NSCalendar
或NSDateFormatter
。他们不仅可以处理时区,还可以处理夏令时和一些东方日历。