【问题标题】:Objective-C NSDate - How to Get the Current Date From a Different Time ZoneObjective-C NSDate - 如何从不同的时区获取当前日期
【发布时间】:2010-08-05 09:09:06
【问题描述】:

我已经浏览 Apple 文档有一段时间了,但还没有看到从不同时区获取当前日期的方法。基本上,我需要以美国中部标准时间 (CST) 获取当前日期。通过设置时区,我很确定它是 NSDate 和 NSDateFormatter 的组合。我确信这是一项简单的任务,但我还没有找到最好的方法。

这里有什么我遗漏的吗?

【问题讨论】:

    标签: objective-c


    【解决方案1】:

    如果您只想显示给定区域的当前时间,您需要设置 NSDateFormatter 的 timeZone 属性:

    [formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]];
    

    如果您想要一个包含给定区域时间的 NSDate 对象,您需要在检索该日期之前设置默认时区:

    NSDate* date = [NSDate date];
    NSLog(@"%@", [date description]);
    
    [NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"CST"]];
    NSDate* nDate = [NSDate date];
    NSLog(@"%@", [nDate description]);
    
    //output
    2010-08-05 12:32:38 +0300
    2010-08-05 04:32:38 -0500
    

    【讨论】:

    • 您能详细说明一下吗?这可能值得一个单独的问题 - 这个问题和答案现在可能已经过时了
    • 这是我的输出。 "::" 是换行符。 2019-03-17 15:36:20.317565-0400 xxxxx[5208:11653585] 2019-03-17 19:36:20 +0000 :: 2019-03-17 15:36:20.317798-0400 xxxxx[5208:11653585] 2019-03-17 19:36:20 +0000。请注意,输出的日期是相同的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-21
    • 2016-09-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    相关资源
    最近更新 更多