Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/24.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:我应该使用EST还是EDT?为什么?_Ios_Objective C_Timezone - Fatal编程技术网

iOS:我应该使用EST还是EDT?为什么?

iOS:我应该使用EST还是EDT?为什么?,ios,objective-c,timezone,Ios,Objective C,Timezone,不久前我问了一个关于时区的问题,当时我正在使用EST。用户建议我使用EDT。我想知道为什么我应该使用其中一个,因为它们都为我同时打印。下面的代码可以更好地说明我的意思 NSDate *today = [NSDate date]; NSDateFormatter *edtDf = [[NSDateFormatter alloc] init]; [edtDf setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"EDT"]]; [edtDf setDa

不久前我问了一个关于时区的问题,当时我正在使用EST。用户建议我使用EDT。我想知道为什么我应该使用其中一个,因为它们都为我同时打印。下面的代码可以更好地说明我的意思

NSDate *today = [NSDate date];
NSDateFormatter *edtDf = [[NSDateFormatter alloc] init];
[edtDf setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"EDT"]];
[edtDf setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString *stringDate = [edtDf stringFromDate:today];

NSLog(@"The EDT is %@", stringDate);

NSDate *today1 = [NSDate date];
NSDateFormatter *estDf = [[NSDateFormatter alloc] init];
[estDf setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"EST"]];
[estDf setDateFormat:@"yyyy-MM-dd HH:mm:ss"];

NSString *stringDate1 = [estDf stringFromDate:today1];

NSLog(@"The EST is %@", stringDate1);

它们可能会根据一年中的时间打印不同的内容,因为一年中的时间决定夏令时是否处于活动状态

不要使用EST或EDT。使用美国/东部或美国/纽约:


这些时区在一年中的正确时间调整夏令时。

它们可能会根据一年中的时间打印不同的内容,因为一年中的时间决定夏令时是否处于活动状态

不要使用EST或EDT。使用美国/东部或美国/纽约:


这些时区在一年中正确的时间调整夏令时。

更好的问题是,为什么要设置时区?默认情况下,使用用户的当前时区。为什么你特别想要东部标准时间或夏令时?而且,正如你接受的答案中所提到的,你需要对这两个时区值使用TimeZoneWithAbrevision,而不是timeZoneWithName:。我的错。我把它改成缩写。但原因是,我使用的服务器特别需要EST/EDF。但是,它们同时显示此服务器是否为web服务?如果是这样,您的服务器团队应该更改该接口。人们通常设计web服务来使用ISO 8601/RFC 3339日期字符串,其中包括时区信息。常见格式为2015-03-10T01:46:00Z。如果字符串本身不包含时区信息,您真的不希望服务器发送或至少需要一些本地时区。更好的问题是,为什么要设置时区?默认情况下,使用用户的当前时区。为什么你特别想要东部标准时间或夏令时?而且,正如你接受的答案中所提到的,你需要对这两个时区值使用TimeZoneWithAbrevision,而不是timeZoneWithName:。我的错。我把它改成缩写。但原因是,我使用的服务器特别需要EST/EDF。但是,它们同时显示此服务器是否为web服务?如果是这样,您的服务器团队应该更改该接口。人们通常设计web服务来使用ISO 8601/RFC 3339日期字符串,其中包括时区信息。常见格式为2015-03-10T01:46:00Z。如果字符串本身不包含时区信息,您真的不希望服务器发送或至少需要一些本地时区。
NSTimeZone *tz = [NSTimeZone timeZoneWithName:@"US/Eastern"];
// or
NSTimeZone *tz = [NSTimeZone timeZoneWithName:@"America/New_York"];