我尝试使用以下代码获取伦敦的当前时间和日期。 但是它没有显示伦敦时间。
var date = new Date();
console.log(date.toLocaleString('en-GB'));
以上显示为我的时区(印度时间)的当前时间和日期20/12/2018,10:43:23
任何人都可以帮助我将印度标准时间转换为BST逻辑。
答案 0 :(得分:2)
伦敦是一种特殊情况,因为英国遵守格林威治标准时间,该时间与世界协调时间(UTC)相对应。
这意味着您不需要像momentjs这样的外部库来获取时区信息,但是您可以依靠Date.toUTCString()
之类的内置方法:
const date = new Date();
console.log(date.toUTCString());
注意:在夏季,您必须考虑英国夏令时(UTC + 1)。
答案 1 :(得分:1)
使用moment.js https://momentjs.com/timezone/docs/
moment().tz("Europe/London").format();
答案 2 :(得分:1)
如果您有很多日期操作(如日期比较,修改,本地化等),则可以按照其他答案的建议使用momentjs。如果只想将日期显示为字符串,则可以使用本地javascript日期对象。
var event = new Date();
console.log(event.toLocaleString('en-GB', { timeZone: 'Europe/London' }));
您已经部分完成了。您需要做的就是将“ timeZone
”信息传递给您的toLocalseString
方法。
[引用Mozilla文档] https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString
答案 3 :(得分:0)
JavaScript代码:
function calcTime(city, offset) {
// create Date object for current location
d = new Date();
// convert to msec
// add local time zone offset
// get UTC time in msec
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
// create new Date object for different city
// using supplied offset
nd = new Date(utc + (3600000*offset));
// return time as a string
return "The local time in " + city + " is " + nd.toLocaleString();
}
获取伦敦时间
// get London time
alert(calcTime('London', '+1'));
答案 4 :(得分:0)
@Shiva 的回答是正确的。但是,如果有人专门寻找以小时为单位的时间,下面是一个示例:
var rightNow = new Date();
rightNow = rightNow.toLocaleString('en-GB', {hour: '2-digit', hour12: false, timeZone: 'Europe/London' });