React Native中如何将时间转换为24小时制UTC格式?
问题解决:将本地时间转换为24小时制UTC时间
首先纠正一个误解:你输出的2023-03-23T09:28:58.638Z是ISO 8601标准格式,本身就是24小时制,其中的09:28直接对应24小时制的9点28分,12小时制的表示会附带AM/PM标识(比如09:28 AM)。
如果想要输出更直观的24小时制字符串(比如2023-03-23 06:58:00这种格式),可以通过moment的format方法实现,修改后的代码如下:
const startTime = "14:58"; let currentDate = new Date(); let startDate = new Date(currentDate.getTime()); // 解构赋值获取小时和分钟,避免重复split const [hours, minutes] = startTime.split(":"); startDate.setHours(hours); startDate.setMinutes(minutes); startDate.setSeconds(0); // 可选,清除秒数让时间更精准 // 转换为UTC并格式化为24小时制字符串 const startUTCStr = moment(startDate).utc().format("YYYY-MM-DD HH:mm:ss"); console.log(startUTCStr);
关键说明:
HH在moment的格式字符串中代表24小时制的小时(范围00-23),如果用hh则是12小时制的小时(范围01-12);- 你原代码中得到的UTC时间和输入的14:58有差异,是因为UTC时间是根据你的本地时区偏移计算的,比如如果你的本地时区是东八区(UTC+8),本地14:58对应的UTC时间就是14:58-8小时=06:58;
- 优化了
startTime.split的调用,通过解构赋值一次获取小时和分钟,代码更简洁。
内容的提问来源于stack exchange,提问作者Manish Kumar
相关产品推荐
相关产品推荐

