【问题标题】:How to get 24 hr format time from iDevices?如何从 iDevices 获得 24 小时格式化时间?
【发布时间】:2010-12-07 05:34:27
【问题描述】:

我正在开发需要 iPhone 日期和时间才能在服务器上发布的应用程序。现在,根据地区和时区,不同设备上的这个日期和时间在世界各地总是不同的。我希望只有 24 小时的本地日期时间,但如果用户更改了 setting>date & time>24 小时时间>off

由于我没有以 'yyyy-MM-dd HH:mm:ss' 格式获取时间,因此它在服务器端产生问题并在服务器上显示错误的日期和时间。有没有非常具体的解决方案?

【问题讨论】:

    标签: ios iphone datetime nsdateformatter nstimezone


    【解决方案1】:

    我建议您应该避免将格式化的日期发送到服务器,而是发送 UNIX 时间戳。 [[NSDate date] timeIntervalSince1970] 为您提供与时区无关的时间戳,您无需解析。如果您也需要时区,请将其标识符作为附加参数发送。

    【讨论】:

      【解决方案2】:

      如果您需要 24 小时格式的时间,请在 dateFormatter 中使用大写 H:

      dateFormatter.dateFormat = @"yyyy MM dd **HH**:mm:ss";
      

      【讨论】:

        【解决方案3】:

        就像 Costique 说的,使用 UNIX 时间戳,但如果你必须使用字符串格式,在格式字符串中包含时区并在服务器上处理它,你需要类似的东西:

        NSDateFormatter* dateFormatter = [[NSDateFormatter alloc] init];
        NSLocale *enUSPOSIXLocale = [[[NSLocale alloc] 
                  initWithLocaleIdentifier:@"en_US_POSIX"] autorelease];        
        [dateFormatter setLocale:enUSPOSIXLocale];
        [dateFormatter setTimeStyle:NSDateFormatterFullStyle];
        [dateFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ssZZ"];
        NSString *transDateStr = [dateFormatter stringFromDate:transDate];
        [dateFormatter release];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-16
          • 2018-05-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多