dayjs时区转换,moment时区转换
-
import dayjs from 'dayjs'; import utc from 'dayjs/plugin/utc'; import timezone from 'dayjs/plugin/timezone'; // dayjs提供两个插件,然后就可以调用tz方法,将本地时间转换成指定时区的时间了 dayjs.extend(utc); dayjs.extend(timezone); // 获取当前本地时间 const localTime = dayjs(); // getTimezoneOffset() 方法返回协调世界时(UTC)相对于当前时区的时间差值,单位为分钟。 // 注意:本地时间+这个差值=世界时间 // 比如北京市东8区,此方法返回-480分钟,可以根据这个值算出时区 console.log('相对于当前时区的时间差值', new Date().getTimezoneOffset()); // -480 // 创建一个时区映射表:UTC+X <-> IANA 时区名称 const timezoneMap = { 0: 'UTC', 1: 'Europe/Paris', // UTC+1 2: 'Europe/Berlin', // UTC+2 3: 'Europe/Moscow', // UTC+3 4: 'Asia/Dubai', // UTC+4 5: 'Asia/Karachi', // UTC+5 5.5: 'Asia/Kolkata', // UTC+5:30 6: 'Asia/Almaty', // UTC+6 7: 'Asia/Bangkok', // UTC+7 8: 'Asia/Shanghai', // UTC+8 9: 'Asia/Tokyo', // UTC+9 10: 'Australia/Sydney', // UTC+10 11: 'Pacific/Guam', // UTC+11 12: 'Pacific/Auckland', // UTC+12 '-1': 'Atlantic/Azores', // UTC-1 '-2': 'Atlantic/South_Georgia', // UTC-2 '-3': 'America/Argentina/Buenos_Aires', // UTC-3 '-4': 'America/Caracas', // UTC-4 '-5': 'America/New_York', // UTC-5 '-6': 'America/Chicago', // UTC-6 '-7': 'America/Denver', // UTC-7 '-8': 'America/Los_Angeles', // UTC-8 '-9': 'America/Anchorage', // UTC-9 '-10': 'Pacific/Honolulu', // UTC-10 '-11': 'Pacific/Midway', // UTC-11 '-12': 'Pacific/Kwajalein' // UTC-12 }; /** * 转换时区 * @param date 本地时间 * @param zone 目标时区 */ function changeTimezone(date, timezone=8){ return dayjs(date).tz(timezoneMap[timezone]); } console.log('当前时间', dayjs(Date.now()).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 22:30:20 console.log('0时区', changeTimezone(Date.now(), 0).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 14:26:15 console.log('1时区', changeTimezone(Date.now(), 1).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 15:26:15 console.log('2时区', changeTimezone(Date.now(), 2).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 15:30:20 console.log('3时区', changeTimezone(Date.now(), 3).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 17:30:20 console.log('4时区', changeTimezone(Date.now(), 4).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 18:30:20 console.log('5时区', changeTimezone(Date.now(), 5).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 19:30:20 console.log('6时区', changeTimezone(Date.now(), 6).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 19:30:20 console.log('7时区', changeTimezone(Date.now(), 7).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 21:30:20 console.log('8时区', changeTimezone(Date.now(), 8).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 22:30:20 console.log('9时区', changeTimezone(Date.now(), 9).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 23:30:20 console.log('10时区', changeTimezone(Date.now(), 10).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 01:30:20 console.log('11时区', changeTimezone(Date.now(), 11).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 00:30:20 console.log('12时区', changeTimezone(Date.now(), 12).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 03:30:20 console.log('-12时区', changeTimezone(Date.now(), -12).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 02:30:20 console.log('-11时区', changeTimezone(Date.now(), -11).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 03:30:20 console.log('-10时区', changeTimezone(Date.now(), -10).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 04:30:20 console.log('-9时区', changeTimezone(Date.now(), -9).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 05:30:20 console.log('-8时区', changeTimezone(Date.now(), -8).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 06:30:20 console.log('-7时区', changeTimezone(Date.now(), -7).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 07:30:20 console.log('-6时区', changeTimezone(Date.now(), -6).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 08:30:20 console.log('-5时区', changeTimezone(Date.now(), -5).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 09:30:20 console.log('-4时区', changeTimezone(Date.now(), -4).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 10:30:20 console.log('-3时区', changeTimezone(Date.now(), -3).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 11:30:20 console.log('-2时区', changeTimezone(Date.now(), -2).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 12:30:20 console.log('-1时区', changeTimezone(Date.now(), -1).format('YYYY-MM-DD HH:mm:ss')); // xxxx-xx-xx 13:30:20
moment时区转换
// UTC 时间(0 时区) console.log('UTC时间:', moment.utc().format('YYYY-MM-DD HH:mm:ss')); // 本地时间(当前系统时区,如 GMT+8) console.log('本地时间:', moment().format('YYYY-MM-DD HH:mm:ss')); // 从 Date 对象转换的本地时间(与第二条相同) console.log('Date转本地:', moment(new Date()).format('YYYY-MM-DD HH:mm:ss')); function getTimeZone(date, timezone = '+08:00') { return moment(date).utcOffset(timezone) } const date = new Date(); console.log('0时区', getTimeZone(date, '+00:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+01:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+02:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+03:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+04:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+05:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+06:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+07:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+08:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+09:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+10:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+11:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '+12:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-11:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-10:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-09:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-08:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-07:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-06:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-05:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-04:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-03:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-02:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-01:00').format('YYYY-MM-DD HH:mm:ss')); console.log('0时区', getTimeZone(date, '-00:00').format('YYYY-MM-DD HH:mm:ss'));
dayjs
<script src="https://cdn.bootcdn.net/ajax/libs/dayjs/1.11.13/dayjs.min.js"></script> <!-- 引入 UTC 插件 --> <script src="https://cdn.jsdelivr.net/npm/dayjs@1/plugin/utc.js"></script> <!-- 引入时区插件(需先引入 UTC 插件) --> <script src="https://cdn.jsdelivr.net/npm/dayjs@1/plugin/timezone.js"></script>
==
// 需要安装插件才有utc方法 npm install dayjs utc timezone // 扩展插件 dayjs.extend(dayjs_plugin_utc); dayjs.extend(dayjs_plugin_timezone); console.log('本地时区时间', dayjs(date).format('YYYY-MM-DD HH:mm:ss')); console.log('utc时间', dayjs(date).utc().format('YYYY-MM-DD HH:mm:ss')); console.log('本地时区转换为动1区', dayjs(date).utcOffset('+01:00').format('YYYY-MM-DD HH:mm:ss')) // 3. 从 UTC 转换到东八区 const utcTime = dayjs.utc(); console.log('utc时间', utcTime.format('YYYY-MM-DD HH:mm:ss')) const localTime = utcTime.utcOffset('+08:00'); console.log('转换后时间:', localTime.format('YYYY-MM-DD HH:mm:ss'));
-

浙公网安备 33010602011771号