C# 使用日期时区操作

C# 使用日期时区操作,c#,javascript,.net,C#,Javascript,.net,我在客户端有Date(用户在日期选择器中选择),我想将其发送到服务器,并使用UTC值进行未来计算。 例如,用户选择2011年10月4日星期二00:00:00 GMT+0300(欧洲夏令时),我使用date.getTime()向服务器发送毫秒。在服务器上,我使用以下方法: public static DateTime GetDateByMilliseconds(long milliseconds) { var date = new DateTime(1970, 1, 1); ret

我在客户端有
Date
(用户在日期选择器中选择),我想将其发送到服务器,并使用UTC值进行未来计算。
例如,用户选择
2011年10月4日星期二00:00:00 GMT+0300(欧洲夏令时)
,我使用
date.getTime()向服务器发送毫秒。在服务器上,我使用以下方法:

public static DateTime GetDateByMilliseconds(long milliseconds)
{
    var date = new DateTime(1970, 1, 1);
    return date.AddMilliseconds(milliseconds);
}
并获取2011年10月3日09:00:00 PM
。但是我想使用value
2011年10月4日00:00:00

我该怎么办?在客户端重置日期时区?在服务器上添加偏移量?还有什么吗?

我想你应该:

date.getTime() + (date.getTimezoneOffset() * 60 * 1000)

这将“删除”用户时区的偏移量。

它们是相同的值。您说要使用UTC,
2011年10月3日09:00:00 PM
2011年10月4日星期二00:00:00 GMT+0300的UTC值。我不明白这个问题…Javascript会给你UTC时间,所以稍后你必须从值中加上/减去偏移量才能得到DateTime对象我不是100%清楚你到底在问什么…但是,我可以告诉你的是,用UTC进行计算,非本地,然后将其转换回本地时间以显示。