Javascript 如何将日期对象转换为格式化的本地日期时间字符串?
我正在尝试将日期对象转换为格式为“YYYYMMDDHHmmss”的本地时间 我想做的就是跟随Javascript 如何将日期对象转换为格式化的本地日期时间字符串?,javascript,node.js,Javascript,Node.js,我正在尝试将日期对象转换为格式为“YYYYMMDDHHmmss”的本地时间 我想做的就是跟随 var currentDate = new Date(); var timezone = "Asia/Tokyo"; var currentDateJst = moment(currentDate).tz(timezone).format('YYYYMMDDHHmmss'); 我想知道如何在没有时刻时区库的情况下转换,如果你不想使用库,那么没有快速/简单的方法。一种方法是添加与UTC的差异 例如,东京
var currentDate = new Date();
var timezone = "Asia/Tokyo";
var currentDateJst = moment(currentDate).tz(timezone).format('YYYYMMDDHHmmss');
我想知道如何在没有时刻时区库的情况下转换,如果你不想使用库,那么没有快速/简单的方法。一种方法是添加与UTC的差异 例如,东京时间为UTC+9。现在你可以做:
const yourTime = new Date();
console.log('your date is: ' + yourTime);
const minutesFromUTC = yourTime.getTimezoneOffset();
const utcTime = new Date(yourTime.setMinutes(yourTime.getMinutes()+minutesFromUTC));
console.log('utc date is: ' + utcTime);
const tokyoFromUTC = 9*60; // Tokya is 9 hours
const tokyoTime = new Date(utcTime.setMinutes(utcTime.getMinutes()+tokyoFromUTC));
console.log('tokyo date is: ' + tokyoTime);
如果要根据特定时区的日期-时间格式进行格式化,可以使用ECMAScript国际化API。例如:
new Intl.DateTimeFormat(
'ja-JP',
{
hour: '2-digit',
minute: '2-digit',
second: '2-digit',
year: 'numeric', // 2018
month: '2-digit',
day: '2-digit',
timezone: 'Asia/Tokyo' // Format in the order how it's used in Asia/Tokyo
}
).format(new Date()).replace(/\D/g, '')
最后,我删除了非数字字符,以您要求的方式显示
MDN中有关于的良好文档,您是否查看了?它有一些有用的方法,比如getDate
,getMonth
,getFullYear
,getHours
,getMinutes
和getSeconds
这对您有帮助吗?就像汤姆·斯科特在书中说的。您应该使用库console.log(date.getFullYear()+“”+date.getMonth()+“”+date.getDate()+“”+date.getHours()+“”+date.getMinutes())代码>谢谢你的建议。我混淆了如何将格式化时区和更改时区结合起来。