9

システムのタイムゾーン、iOS の日時をコードで設定したい。アイデアやプライベート API は役に立ちますか? 例: タイム ゾーンを GMT+8 に設定し、日時を 2013 年 8 月 10 日午後 8 時 30 分に設定します。どうやってするの?ありがとう!

4

3 に答える 3

21

他の人が言っているように、アプリ内からシステムのタイムゾーンを編集することはできませんが、onを使用してアプリケーション全体のデフォルトのタイムゾーンを設定できます。+setDefaultTimeZone:NSTimeZone

これはテスト用であると述べたので、これはいくつかのカスタム日付フォーマッタなどの単体テスト用であると想定します。その場合、単体テストで次のようなことができます。

static NSTimeZone *cachedTimeZone;

@implementation DateUtilTests

+ (void)setUp
{
    [super setUp];
    cachedTimeZone = [NSTimeZone defaultTimeZone];
    // Set to whatever timezone you want your tests to run in
    [NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"GMT"]];
}

+ (void)tearDown
{
    [NSTimeZone setDefaultTimeZone:cachedTimeZone];
    [super tearDown];
}

// ... do some tests ...

@end

それが役立つことを願っています!

于 2014-06-30T14:59:11.937 に答える