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