C# JavaScript中的DST

C# JavaScript中的DST,c#,javascript,timezone,dst,C#,Javascript,Timezone,Dst,如何在JS文件中检查当前日期是否在DST中 在C#中,有以下代码可用于检查这一点。有人能推荐JS中类似的代码吗 var timezone = TimeZone.CurrentTimeZone var tzById = TimeZoneInfo.FindSystemTimeZoneById(timezone.StandardName); var localDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzById); 让我们从您提

如何在JS文件中检查当前日期是否在DST中

在C#中,有以下代码可用于检查这一点。有人能推荐JS中类似的代码吗

var timezone = TimeZone.CurrentTimeZone
var tzById = TimeZoneInfo.FindSystemTimeZoneById(timezone.StandardName);
var localDate = TimeZoneInfo.ConvertTimeFromUtc(DateTime.UtcNow, tzById);
让我们从您提供的C代码开始。你有一只虫子
FindSystemTimeZoneById
需要来自
TimeZoneInfo
对象的
Id
属性的值。您可以通过
时区
对象的
标准名称
来查找它,该对象可能有效,但仅适用于某些时区,并且仅适用于英语语言系统。
Id
未本地化,但名称已本地化。真的,你不应该使用时区。只需使用
TimeZoneInfo
。如果您想要本地的
TimeZoneInfo
,那么只需使用
TimeZoneInfo.local

但实际上,您刚刚编写了一个精心制作的
DateTime.Now
。除此之外,您的代码不会执行任何操作。等效的JavaScript只是
newdate()

因此,您询问如何确定当前日期是否为夏令时。我也会假设你指的是当地时区。在C语言中,它只是
DateTime.Now.IsDaylightSavingTime
。在JavaScript中,这有点棘手

有几种不同的方法,但这一种很简单。有关详细说明,请参阅

Date.prototype.stdTimezoneOffset = function() {
var jan = new Date(this.getFullYear(), 0, 1);
var jul = new Date(this.getFullYear(), 6, 1);
return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
}

Date.prototype.dst = function() {
return this.getTimezoneOffset() < this.stdTimezoneOffset();
}
Date.prototype.stdTimezoneOffset=function(){
var jan=新日期(this.getFullYear(),0,1);
var jul=新日期(this.getFullYear(),6,1);
返回Math.max(jan.getTimezoneOffset(),jul.getTimezoneOffset());
}
Date.prototype.dst=函数(){
返回此.getTimezoneOffset()
现在,您可以检查
newdate().dst
并获得一个简单的真/假结果