React.js中DateTime格式转换:将Mon Aug 23 2021 15:03:00 GMT+0430 (Iran Daylight Time)转换为2021-10-10T00:00:00格式
在React中转换日期格式为
YYYY-MM-DDTHH:mm:ss 嘿,我来帮你搞定这个日期格式转换的问题!针对你给出的日期值,我会分享几种在React项目里常用的实现方式,你可以根据项目需求选择最合适的方案:
方案1:原生JavaScript(无需额外依赖)
如果不想引入第三方库,原生JS就能轻松搞定。核心思路是手动提取年、月、日等时间字段,补零后拼接成目标格式——注意这里要特别提醒:JavaScript的月份是从0开始计数的,所以提取后要加1哦:
// 你的原始日期值 const originalDate = new Date('Mon Aug 23 2021 15:03:00 GMT+0430 (Iran Daylight Time)'); // 提取各时间字段并补零(确保显示为两位数) const year = originalDate.getFullYear(); const month = String(originalDate.getMonth() + 1).padStart(2, '0'); const day = String(originalDate.getDate()).padStart(2, '0'); const hours = String(originalDate.getHours()).padStart(2, '0'); const minutes = String(originalDate.getMinutes()).padStart(2, '0'); const seconds = String(originalDate.getSeconds()).padStart(2, '0'); // 拼接成目标格式 const formattedDate = `${year}-${month}-${day}T${hours}:${minutes}:${seconds}`; console.log(formattedDate); // 输出:2021-08-23T15:03:00
如果需要转换为UTC时间,只需要把getFullYear()换成getUTCFullYear(),其他字段同理换成getUTC*系列方法即可。
方案2:使用moment.js(老牌日期工具库)
虽然moment.js已经停止维护,但很多现有项目仍在使用它,语法非常简洁直观:
首先安装依赖:
npm install moment
然后在组件中调用:
import moment from 'moment'; const originalDate = new Date('Mon Aug 23 2021 15:03:00 GMT+0430 (Iran Daylight Time)'); const formattedDate = moment(originalDate).format('YYYY-MM-DDTHH:mm:ss'); console.log(formattedDate); // 输出:2021-08-23T15:03:00
要转换为UTC时间的话,改成moment.utc(originalDate).format('YYYY-MM-DDTHH:mm:ss')就可以了。
方案3:使用date-fns(现代轻量日期库)
更推荐使用date-fns,它是模块化设计的轻量库,是moment.js的优秀替代方案:
先安装依赖:
npm install date-fns
然后在组件中使用:
import { format } from 'date-fns'; const originalDate = new Date('Mon Aug 23 2021 15:03:00 GMT+0430 (Iran Daylight Time)'); const formattedDate = format(originalDate, "yyyy-MM-dd'T'HH:mm:ss"); console.log(formattedDate); // 输出:2021-08-23T15:03:00
如果需要UTC格式,直接使用formatUTC方法即可:
import { formatUTC } from 'date-fns'; const formattedUTCDate = formatUTC(originalDate, "yyyy-MM-dd'T'HH:mm:ss");
内容的提问来源于stack exchange,提问作者zahra zamani
相关产品推荐
相关产品推荐

