时差一小时
Timezone one hour off
我正在使用遗留 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 消息的一部分从客户端应用程序发送到服务器应用程序。
我将代码更新为以下内容,并且有效:
+ (NSString*)formattedDate {
NSDateFormatter *formatter;
NSString *dateString;
formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSSSSSZZZZZ"];
dateString = [formatter stringFromDate:[NSDate date]];
return dateString;
}
我正在使用遗留 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 消息的一部分从客户端应用程序发送到服务器应用程序。
我将代码更新为以下内容,并且有效:
+ (NSString*)formattedDate {
NSDateFormatter *formatter;
NSString *dateString;
formatter = [[NSDateFormatter alloc] init];
[formatter setDateFormat:@"yyyy-MM-dd'T'HH:mm:ss.SSSSSSSZZZZZ"];
dateString = [formatter stringFromDate:[NSDate date]];
return dateString;
}