0

我在我的应用程序中将用户提交的日期时间转换为 utc:

TimeZoneInfo.ConvertTimeToUtc(DateTime.Parse(model.SessionEnd))

我也尝试过这样的事情

combinedDateTime = DateTime.SpecifyKind(combinedDateTime, DateTimeKind.Utc);

当我在我的电脑上运行网络应用程序时,两者都工作得很好。一旦我将它上传到服务器并从那里尝试它只是不会转换时间并最终只返回我输入的相同日期时间。我确信我的类库正在使用最新版本正确加载,因为我检查了我的调试语句是否也在更新,并且它们是。这是服务器设置还是我可以做些什么来解决这个问题?

4

2 回答 2

2

唯一明智的方法是让客户端代码提交带有时区的时间/日期时间值。一般来说,在客户端转换为 UTC 是合理的,并且 JavaScript 也支持(如果您仍然喜欢 timzone - 使用getTimeZoneOffset)。我建议在 UTC (Z) 时区发布格式为 ISO8601 的日期时间值,这是众所周知的可排序格式,对同一字符串 (2013-03-11T03:52Z) 没有多重含义。

请注意,有时您需要明确没有时区的时间(例如在我的时间早上 9 点叫醒我) - 确保了解您的用例。

于 2013-03-11T22:52:13.590 回答
1

当您的客户从客户端将日期时间作为字符串发布时,您可以执行以下操作:

1.)您可以在客户端将他们的时间转换为 UTC(如 Alexei Levenov 的回答)

2.)您可以将客户端的时间传递给服务器并在服务器端转换他们的时区

3.) 您可以在客户端将他们的时间转换为 UTC,并在服务器端发送他们的时区

根据您的需要,您可以选择其中任何一种。第三个只有在您以后想在服务器端以某种方式使用他们的时区时才有用。

于 2013-03-12T00:17:56.310 回答