如何从Javascript中的Date()函数中获取斯里兰卡时间缩写

How to get Sri Lanka time abbreviation from Date() function in Javascript

本文关键字:函数 获取 斯里兰卡 缩写 时间 Javascript 中的 Date      更新时间:2024-02-27

JavaScript Date()函数返回IST(印度标准时间)CCD_ 1。

我想从中提取缩写。但这总是返回印度标准时间。如何获取斯里兰卡时间缩写的缩写?

我认为这就是的答案

const date = new Date().toLocaleString('en-US', { timeZone: 'Asia/Colombo'});

我想这就是你想要的:

<script>
function myFunction() {
    var theDate = new Date(); 
    var res = theDate.replace("IST", "SLST");
}
</script>

现在,您可以使用res来显示完全相同的时间(因为根据我所读的内容,IST和SLST是相同的),但最后使用SLST而不是IST。如果Date()生成的字符串中有更多要替换的内容,那么您也可以替换这些内容。

这将为您提供答案

<p id="demo"></p>
<script>
document.getElementById("demo").innerHTML = Date();
</script>

链接

斯里兰卡时间-缩写为IST(印度标准时间)。所以斯里兰卡的时区和印度的时区是一样的。这就是你得到IST的原因,因为它就是IST。

斯里兰卡于2011年4月11日午夜切换到SLST,但与IST相同,JavaScript可能无法识别。

当您在实例上调用.toString()时,或者当您隐式转换为字符串时(例如在向控制台写入时),JavaScript的Date函数返回的字符串完全依赖于实现。您根本不能保证能够获得任何时区缩写。一些浏览器可能会给出一个缩写,但其他浏览器可能会吐出整个时区名称,例如";"印度标准时间";,而其他人可能只是给出与UTC或GMT的偏移;GMT+05:30";。ECMAScript规范中没有任何内容使这个字符串有任何特别之处。

此外,要认识到时区缩写可能不明确"IST";可能代表";"印度标准时间"以色列标准时间";,或";爱尔兰标准时间";。

更重要的是,斯里兰卡的缩写是";IST";自2006年从+06:00切换到+05:30以来,在时区数据库中。在此之前;LKT";已在数据库中使用。你可以在这里阅读整个历史。维基百科显示了";SLST";,但这并没有在任何用于计算时区的数据库中实现。如果你对这个缩写有第一手的了解,可以通过IANA的tz讨论列表请求更新。

总之,如果您的系统时区设置为斯里兰卡(Linux/Mac上的Asia/Colombo或Windows上的Sri Lanka Standard Time|(UTC+05:30) Sri Jayawardenepura),并且JavaScript Date对象在您的特定浏览器中显示IST,则它正在正确执行所有操作,您不应尝试更改它。

如果您在计算机中设置了本地时间,这将生成本地时间

   var date = new Date().toLocaleDateString();  //  3/15/2017
   var dateTime =new Date().toLocaleString();   //  3/15/2017, 12:23:55 AM
   var time  =new Date().toLocaleTimeString();  //  12:23:55 AM