时区关闭一小时

时间:2018-07-31 11:51:23

标签: objective-c macos nsdate nsdateformatter nstimezone

我正在使用旧版OS X应用程序来修复时间戳为1小时的错误。我主要是C#开发人员,以前没有使用Objective-C的经验,所以我真的不知道我在做什么。 :)

这是使用当前时间创建NSString的帮助函数:

+ (NSString*)formattedDate {
NSDateFormatter *formatter;
NSString        *dateString;

formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss."];
dateString = [formatter stringFromDate:[NSDate date]];

dateString = [dateString stringByReplacingOccurrencesOfString:@" " withString:@"T"];
dateString = [dateString stringByAppendingString:@"0000000+01:00"];

return dateString;
}

我想是将“ 0000000 + 01:00”附加到了将时区设置为GMT + 1的那一行?在夏季,这里的时区是GMT + 2,所以至少可以解释一下。

正确的解决方案应该是这样的吗?

+ (NSString*)formattedDate {
NSDateFormatter *formatter;
NSString        *dateString;

formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss."];
[formatter setTimeZone:[NSTimeZone timeZoneWithAbbreviation:[[NSTimeZone localTimeZone] abbreviation]]];
dateString = [formatter stringFromDate:[NSDate date]];

dateString = [dateString stringByReplacingOccurrencesOfString:@" " withString:@"T"];

return dateString;
}

还是会做一些不同于追加的事情?

日期字符串作为XML消息的一部分从客户端应用程序发送到服务器应用程序。

1 个答案:

答案 0 :(得分:0)

我将代码更新为以下代码,并且有效:

function myfunction(e) {
  loadDetails(this.rowIndex)
}