iPhone 시뮬레이터에서 시간과 시간대를 변경하는 방법은?
iPhone 시뮬레이터에서 시간과 시간대를 변경하려면 어떻게 해야 하나요?
시스템 표준 시간대를 사용하는 것 같기 때문에 시스템 기본 설정에서 TZ를 변경하는 것이 효과적일 수 있습니다.

를 설정할 수 있습니다.TZXcode Scheme에서 환경변수를 지정하여 해당 앱의 표준 시간대를 설정합니다.
사용할 수 있습니다.UTC,PST,EST, 및 플레이스 베이스의 타임 존명(예:America/Los_Angeles잘 문서화되어 있지는 않지만, 시간대 이름은 어떤 것이든 상관없습니다.
문서화는 잘 되어 있지 않지만, 그 출처는 개발자 포럼의 Apple Developer Support 담당자입니다.
시스템 날짜 시간 기본 설정을 변경한 후 시뮬레이터를 재시작하면 변경 내용이 반영됩니다.그것은 나에게 효과가 있었다.
스크린샷을 찍기 위해, 애플은 마침내 iOS 시뮬레이터의 상태 표시줄에서 시간을 오버라이드할 수 있게 되었습니다(Xcode 11 이후).
xcrun simctl status_bar "iPhone Xs" override --time "21:08"
적어도 iOS 13 및 Xcode 11에서 사용할 수 있는 솔루션은 다음과 같습니다.(이전 버전에서 테스트하지 않음) [편집]이렇게 하면 상태 표시줄만 댓글로 변경됩니다!
기본적으로 iOS 시뮬레이터는 Mac의 시간을 표시하지만 Xcode의 명령줄을 사용하여 터미널에서 다음 명령으로 이를 재정의할 수 있습니다.
xcrun simctl status_bar "iPhone 11 Pro Max" override --time '9:41'
시뮬레이터 이름을 변경할 장치로 바꿉니다.
상태 표시줄에는 다음과 같은 재정의가 있습니다.
You may specify any combination of these flags (at least one is required):
--time <string>
Set the date or time to a fixed value.
If the string is a valid ISO date string it will also set the date on relevant devices.
--dataNetwork <dataNetworkType>
If specified must be one of 'wifi', '3g', '4g', 'lte', 'lte-a', or 'lte+'.
--wifiMode <mode>
If specified must be one of 'searching', 'failed', or 'active'.
--wifiBars <int>
If specified must be 0-3.
--cellularMode <mode>
If specified must be one of 'notSupported', 'searching', 'failed', or 'active'.
--cellularBars <int>
If specified must be 0-4.
--batteryState <state>
If specified must be one of 'charging', 'charged', or 'discharging'.
--batteryLevel <int>
If specified must be 0-100.
time에는 임의의 문자열을 지정할 수 있습니다.그러나 단말기에 날짜를 표시하려면 ISO 형식을 사용해야 합니다.예를 들어 유효한 ISO 날짜 문자열은 '2007-01-09T10:41:00+01:00'입니다.
그렇지 않으면 time 파라미터를 문자열로 사용할 수 있습니다.이 파라미터에 전달된 내용이 표시됩니다.
Paul Hudson의 원래 게시물에 감사드리며, 여기 링크가 있습니다!
이것은 오래된 실이지만 내 질문에 가장 가깝다.유럽 표준 시간대를 시뮬레이션해야 하는데, 이 방법이 효과가 있어요.'날짜' 대신 '시간대' 탭으로 이동시간 탭.'현재 위치를 사용하여 자동으로 표준 시간대 설정' 상자의 선택을 취소하고 파란색 점이 있는 수직 직사각형 막대를 슬라이드하여 시스템 시간을 시뮬레이션합니다.
시간대를 변경할 때 가장 쉬운 방법은 메뉴바의 시계를 클릭하는 것이었습니다.그런 다음 "Open Date & Time Preferences"를 선택한 후 [Time Zone]탭을 선택합니다.
또는 [시스템 설정(System Preferences)]-> [날짜와 시각(Date and Time)]를 선택하여 [타임존(Time Zone)]탭을 선택합니다.
OSX에 대해 잘 모르는 사람을 위한 포인터입니다.
시간 변경 문제에 대한 자동 해결 방법 https://stackoverflow.com/a/34793193/829338을 제안했습니다.나는 그것이 그에 따라 시간대를 변경하는 데도 효과가 있을 것이라고 생각한다.
앱을 자동으로 테스트해야 했기 때문에 시스템 시간을 변경해야 했습니다.톰이 제안했던 건 해피 해키 스위즐링이었어요
를 들면, 저는 단지 으로만 바꿉니다.[NSDate date] 아니다[NSDate dateWithTimeIntervalSince1970:].
먼저 새 [NSDate 날짜]로 사용할 클래스 메서드를 만들어야 합니다.단순히 시간을 일정 시간 차이만큼 이동시키기 위해 구현했습니다.
int timeDifference = 60*60*24; //shift by one day
NSDate* (* original)(Class,SEL) = nil;
+(NSDate*)date{
NSDate* date = original([NSDate class], @selector(date));
return [date dateByAddingTimeInterval:timeDifference];
}
지금까지는 꽤 쉬워요.츠미야이 메서드는 클래스와 Exchange 구현 모두에서 얻을 수 있습니다(AppDelegate에서는 작동했지만 UITests 클래스에서는 작동하지 않았습니다). 위해서는 Import를 해야 .objc/runtime.h.
Method originalMethod = class_getClassMethod([NSDate class], @selector(date));
Method newMethod = class_getClassMethod([self class], @selector(date));
//save the implementation of NSDate to use it later
original = (NSDate* (*)(Class,SEL)) [NSDate methodForSelector:@selector(date)];
//happy swapping
method_exchangeImplementations(originalMethod, newMethod);
빌드 서버는 UTC이며 일부 유닛 테스트에서는 시간대가 PST여야 했습니다.NSTimeZone의 카테고리를 사용하면 Apple의 구현을 덮어쓰고 코드를 사용할 수 있습니다.신속한 프로젝트에도 대응합니다.
//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
현시점에서는 유효한 솔루션밖에 없습니다.XCode는 특정 앱에 대해 표준 시간대를 설정하는 옵션을 제공합니다.
XCode를 합니다.Edit Scheme -> Run configuration -> Arguments Tab -> Add Environment Variables
이름: 수를 name name name name name name name name name.TZ , ::CST( ( ( ( ( ( ( )XCode는 XCode를 사용합니다.지시시 / 시시시시시시시시)
시간 한 후, 는 '일시 설정'을 선택해야 .HardwareReset All Content And Settings.
3 10 . 3 ( Simulator App - 880 . 5 Core Simulator - 681 . 5 . 4 ) 。
언급URL : https://stackoverflow.com/questions/1699671/how-to-change-time-and-timezone-in-iphone-simulator
'programing' 카테고리의 다른 글
| Xcode를 사용하여 "No such module" 오류가 발생하지만 프레임워크가 있습니다. (0) | 2023.04.16 |
|---|---|
| apache poi를 사용한 셀 색상 변경 (0) | 2023.04.16 |
| WPF에서 창을 앞으로 가져옵니다. (0) | 2023.04.16 |
| 커스텀 할당 해제 및 ARC(객관-C) (0) | 2023.04.16 |
| 명령 출력을 배치 파일의 변수로 설정하는 방법 (0) | 2023.04.16 |



