4

私の場所はGMT+5:30です

getTimezoneOffsetJavaScriptを使って見つけようとすると

var x = new Date();
var currentTimeZoneOffsetInHours = x.getTimezoneOffset() / 60;

値を取得します-5.5。不思議なことに、C#を使用して同じことをしているとき

var localZone = TimeZone.CurrentTimeZone;
var localOffset = localZone.GetUtcOffset(new Date());
var currentTimeZoneOffsetInHours = localOffset.TotalHours;

戻り値は5.5です。

この標識は設計によって変更されていますか、それとも重要なものが欠けていますか?

4

1 に答える 1

6

JavaScriptgetTimeZoneOffsetは、 UTC に到達するために現地時間に追加されるオフセットを返します。(「UTC からのタイムゾーン オフセット」の説明は誤解を招きます、IMO。)

.NETは、ローカル時刻を取得するためにUTCGetUtcOffset時刻に追加されるオフセットを返します。これは、IMO の従来のアプローチです。基本的に、それは参照の別のポイントです。

.NET 3.5 以降を使用している場合は、.NETTimeZoneInfoの代わりに実際に使用する必要があることに注意してくださいTimeZone

于 2012-09-25T11:23:50.590 に答える