如何在iPhone模拟器中更改时间和时区?


当前回答

我猜它使用您的系统时区,所以在系统首选项中更改TZ可能会奏效

其他回答

我猜它使用您的系统时区,所以在系统首选项中更改TZ可能会奏效

这是一个老帖子,但它最接近我的问题。我需要模拟欧洲的时区,这个方法适合我。转到“时区”,而不是“日期和时间”。取消选中“使用当前位置自动设置时区”框,并滑动垂直矩形条(上面有蓝点)来模拟系统时间。

在更改系统日期时间首选项后重新启动模拟器,您将看到反映的更改。这对我很管用。

目前唯一可行的解决方案。XCode提供了为特定应用程序设置时区的选项。

在XCode中,单击应用程序,编辑方案->运行配置->参数选项卡->添加环境变量

创建一个变量,名称:TZ,值:CST(任何其他标准格式。XCode没有明确提到允许的值。但你也可以用America/Chicago)

我的构建服务器是UTC,我的一些单元测试需要时区是PST。使用NSTimeZone上的一个类别,你可以覆盖苹果的实现来使用你的代码。也适用于swift项目。

//NSTimeZone+DefaultTimeZone.h
#import <Foundation/Foundation.h>

@interface NSTimeZone (DefaultTimeZone)

+(NSTimeZone *)defaultTimeZone;

@end

//NSTimeZone+DefaultTimeZone.m
#import "NSTimeZone+DefaultTimeZone.h"

@implementation NSTimeZone (DefaultTimeZone)

+(NSTimeZone *)defaultTimeZone
{
    return [NSTimeZone timeZoneWithName:@"America/Los_Angeles"];
}

@end