Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将应用程序设置为全局使用UTC_Ios_Objective C_Nsdate_Utc - Fatal编程技术网

Ios 将应用程序设置为全局使用UTC

Ios 将应用程序设置为全局使用UTC,ios,objective-c,nsdate,utc,Ios,Objective C,Nsdate,Utc,如何使IOS应用程序从默认代码使用UTC作为默认时区。 换句话说,如果我在应用程序的任何地方初始化NSDate,我希望它使用UTC作为时区。我不想为创建的每个NSdate对象指定时区 我也不想更改设备上的任何首选项。您没有为NSDate指定时区。这只是时间线上的一个点 NSDate对象表示单个时间点。日期对象。。。 表示一个不变的时间点 你必须注意介绍日期。因此,在创建日期的字符串表示形式时,为NSDateFormatter设置所需的时区。这是您指定时区的时候。我认为对NSDate进行分类是最好

如何使IOS应用程序从默认代码使用UTC作为默认时区。 换句话说,如果我在应用程序的任何地方初始化NSDate,我希望它使用UTC作为时区。我不想为创建的每个NSdate对象指定时区

我也不想更改设备上的任何首选项。

您没有为NSDate指定时区。这只是时间线上的一个点

NSDate对象表示单个时间点。日期对象。。。 表示一个不变的时间点


你必须注意介绍日期。因此,在创建日期的字符串表示形式时,为NSDateFormatter设置所需的时区。这是您指定时区的时候。

我认为对NSDate进行分类是最好的。并在需要时使用该类别

差不多

h.菲勒

@interface NSDate (UTCDate)

+(NSDate *) UTCTDateForLocalDate:(NSDate *)localDate;
@end
.m文件

@implementation NSDate (UTCDate)

+(NSDate *) UTCTDateForLocalDate:(NSDate *)localDate{

    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ssZZZ"];
    NSString *localDateString = [dateFormatter stringFromDate:localDate];
    NSTimeZone *timeZone = [NSTimeZone timeZoneWithName:@"UTC"];
    [dateFormatter setTimeZone:timeZone];
    NSDate *UTCDate = [dateFormatter dateFromString:localDateString];

    return UTCDate;
}



@end

这就是我最终解决问题的方式:

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    //default app to use UTC
    [NSTimeZone setDefaultTimeZone:[NSTimeZone timeZoneWithName:@"UTC"]];
}