可以使用 NSDate timeIntervalSince1970 产生的秒数进行操作吗?
Is it OK to operate with seconds produced by NSDate timeIntervalSince1970?
既然NSDate代表的是"a single point in time, independent of any particular calendrical system or time zone",直接用它的方法给定的秒数,比如timeIntervalSince1970
,可以直接计算吗?
我的意思是像对两个 NSTimeInterval
(又名 double
)值进行加减运算,而不是使用像 - (nullable NSDate *)dateByAddingComponents:(NSDateComponents *)comps toDate:(NSDate *)date options:(NSCalendarOptions)opts
这样的 dateByAddingTimeInterval:
或 NSCalendar
方法。
什么问题会有这样的直接计算?
加法可能意义不大,但如果您想找出两个日期之间的时间差,减法确实有意义。
然而,你要注意的是,你应该只计算与减法相差的秒、分钟、小时、天、周
但是要找出月份和年份的差异,您需要使用 NSDate
API。月份和年份不固定
与添加日期类似,如果您想添加秒、分钟、小时、天、周。这些是不变的并且易于添加。但是几个月和几年会让你绊倒
既然NSDate代表的是"a single point in time, independent of any particular calendrical system or time zone",直接用它的方法给定的秒数,比如timeIntervalSince1970
,可以直接计算吗?
我的意思是像对两个 NSTimeInterval
(又名 double
)值进行加减运算,而不是使用像 - (nullable NSDate *)dateByAddingComponents:(NSDateComponents *)comps toDate:(NSDate *)date options:(NSCalendarOptions)opts
这样的 dateByAddingTimeInterval:
或 NSCalendar
方法。
什么问题会有这样的直接计算?
加法可能意义不大,但如果您想找出两个日期之间的时间差,减法确实有意义。
然而,你要注意的是,你应该只计算与减法相差的秒、分钟、小时、天、周
但是要找出月份和年份的差异,您需要使用 NSDate
API。月份和年份不固定
与添加日期类似,如果您想添加秒、分钟、小时、天、周。这些是不变的并且易于添加。但是几个月和几年会让你绊倒