我正在尝试将日期对象转换为由“YYYYMMDDHHmmss”格式化的本地时间。
我想做的就像跟随。
var currentDate = new Date();
var timezone = "Asia/Tokyo";
var currentDateJst = moment(currentDate).tz(timezone).format('YYYYMMDDHHmmss');
我想知道如何转换没有 时刻 - 时区 库。
答案 0 :(得分:0)
如果你不想使用图书馆,那么没有快速/简单的方法。一种方法是添加与UTC的差异。
例如tokoy是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);
答案 1 :(得分:0)
如果要根据特定时区的日期时间格式进行格式化,可以使用ECMAScript Internationalization 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中有关Intl.DateTimeFormat
的详细文档