.getDay() 在将日期转换为特定时区时不起作用
Posted
技术标签:
【中文标题】.getDay() 在将日期转换为特定时区时不起作用【英文标题】:.getDay() is not working while converting date to Particular timezone 【发布时间】:2020-11-11 21:33:48 【问题描述】:下面是我的代码:
var date = new Date().toLocaleString("en-US", timeZone: "Asia/Kolkata" );
var n = date.getDay();
正在尝试将数据转换为 IST。
没有.toLocaleString
.getday
工作正常。但是使用时出现以下错误:
有没有更好的方法将日期转换为 IST 并找到日期?
【问题讨论】:
【参考方案1】:toLocaleString
的返回值是一个字符串。字符串没有getDay
方法。
javascript 的 Date
对象没有让您使用其他时区的功能。它仅支持 UTC 和代码运行的当前时区(同时,通过提供一些以 UTC 为您提供信息的方法和其他以本地时区为您提供信息的方法)。 (有 a proposal 可以解决这个问题,但它仍然只在第 2 阶段。)
如果您想知道用户当前时区是哪一天,只需在您的日期对象上直接使用getDay
。如果您想要不同的时区,则需要一个维护良好且支持多个时区的库。
【讨论】:
【参考方案2】:因为它转换成字符串,而字符串没有getDay()
功能,你可以试试,
var dateString = new Date().toLocaleString("en-US", timeZone: "Asia/Kolkata" );
var date = new Date(dateString);
var n = date.getDay();
console.log("Date String: ", dateString);
console.log("Day:", n);
【讨论】:
感谢@turivishal 的解释和解决方案,它奏效了!以上是关于.getDay() 在将日期转换为特定时区时不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 MQ 的 esql 将日期的特定时区转换为 GMT 时区?
将 UTC 中的 SQL Server 日期时间转换为特定时区