有关PDT,我想 “-0700”。

我凑了过去的日期,以确定如何不久前发生了一件事情。

NSDate *then = [NSDate dateWithString:@"1976-04-01 12:34:56 -0700"]; // Note the hard-coded time zone at the end

我在别处构造日期字符串,但我不知道如何访问当地时区。

我读可可还有NSTimeZone和NSDate的类引用苹果的日期和时间编程主题,但它实在太难受,一起把信息。我真的可以使用的几行代码只是为了显示它是如何使用的。

更新:虽然这个挣扎,我是使用命令行模板,这样我就可以快速尝试的东西编写代码。我只是想在iPhone上我以前的代码和我得到的的NSDate可能不响应“+ dateWithString:” 很抱歉,如果这增加了混乱,谁知道苹果会改变这样一个基本的类

有帮助吗?

解决方案

在时区偏移依赖于日期中大部分是使用日光节约时间/夏令时世界那些部分。

的唯一正确的方法是生成从日期和时间区的整个串起来。使用NSDateFormatter此。

其他提示

使用NSDateFormatter从字符串建立的NSDate:

NSDateFormatter *inputFormatter = [[NSDateFormatter alloc] init];
[inputFormatter setDateFormat:@"yyyy-MM-dd HH:mm:ss Z"];

NSDate *formatterDate;
formatterDate = [inputFormatter dateFromString:@"1976-04-01 12:34:56 -0700"];

NSString *dateString = [inputFormatter stringFromDate:formatterDate];

NSLog(@"date:%@", dateString);

这样,你得到的字符串的本地时间,例如由字符串指定的日期:

  

“1976年4月1日12时34分56秒-0700”

是在时区-0700,(我在时区GMT +1000),所以我得到:

  

2009-11-17 22:13:46.480   CMDLINE [10593:903]日期:1976年4月2日   5时34分56秒+1000

,最好的方法是可能使用一个简单的日历格式

NSCalendarDate * date = [NSCalendarDate calendarDate];
[date setTimeZone:[NSTimeZone timeZoneWithAbbreviation:@"PDT"]];
NSLog([date descriptionWithCalendarFormat:@"%z"]);

将输出 '-0700'

或者如果你想让系统(不知道哪个你问的)

的当前时区离开了第二行
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top