【问题标题】:How do you get the seconds since a past date to now?您如何获得从过去日期到现在的秒数?
【发布时间】:2015-01-25 06:08:28
【问题描述】:

如何使用NSTimeInterval 获取自 1980-01-01 00:00:00 +1100 以来经过的秒数?

// I need the function to use something like and am having an issue 

NSDate *aDate = (NSDate*)@"1980-01-01 00:00:00 +1100";
NSDate *seconds = [NSDate dateWithTimeInterval:60*60*24 sinceDate:aDate];
NSLog(@"seconds since Jan 1980 %@",seconds);

// I am trying to replace the following
//NSTimeInterval dateinterval = [[NSDate date] timeIntervalSince1970];

NSTimeInterval dateinterval = seconds;

NSDate 仅在 +0000 处检索 GMT,这在实际应用中没有帮助。当地日期是强制性的。

是不是太难了,还是不能这样?

【问题讨论】:

    标签: nsdate nstimeinterval


    【解决方案1】:

    您正在初始化您的 NSDate 对象错误。不能直接将NSString 转换为NSDate,需要使用NSDateFormatter

    NSDateFormatter *formatter = [[NSDateFormatter alloc] init];
    formatter.dateFormat = @"yyyy-MM-dd HH:mm:ss z";
    
    NSDate *aDate = [formatter dateFromString:@"1980-01-01 00:00:00 +1100"];
    NSDate *now = [NSDate date];
    
    NSTimeInterval seconds = [now timeIntervalSinceDate:aDate];
    

    要格式化不同时区的日期,请使用新的NSDateFormatter 并设置其localtimeZone

    【讨论】:

      猜你喜欢
      • 2021-12-26
      • 1970-01-01
      • 1970-01-01
      • 2018-08-25
      • 1970-01-01
      • 1970-01-01
      • 2022-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多