React Native中使用Moment.js自定义日期格式问题咨询
解决moment.js自定义日期格式化与时区显示问题
没问题!刚上手moment.js的时候,确实会对各种格式化占位符有点摸不着头脑,我来帮你实现你想要的日期格式~
核心实现方案
你需要自定义格式化字符串,再单独处理时区的显示格式(因为moment默认的时区占位符输出和你要的GMT +8不完全一致),具体代码如下:
// 格式化日期时间部分 const dateTimePart = moment().format('MMM-DD-YYYY h:mmA'); // 处理时区偏移,转换为GMT +X的格式 const offsetHours = moment().utcOffset() / 60; const timezonePart = `(GMT ${offsetHours >= 0 ? '+' : ''}${offsetHours})`; // 拼接最终结果 const finalFormat = `${dateTimePart} ${timezonePart}`; console.log(finalFormat); // 输出示例:Sep-19-2020 3:00AM (GMT +8)
各部分占位符解释
让你更清楚每个参数的作用:
MMM:缩写的月份名称(比如Sep对应九月)DD:两位数字的日期(不足两位自动补零,比如05)YYYY:四位数字的完整年份(比如2020)h:12小时制的小时数(不强制补零,比如3而不是03)mm:两位数字的分钟数(强制补零,比如00)A:大写的上午/下午标识(AM或PM)
可选调整
如果你希望小时数强制补零(比如输出03:00AM),只需要把格式化字符串里的h改成hh即可:
const dateTimePart = moment().format('MMM-DD-YYYY hh:mmA');
内容的提问来源于stack exchange,提问作者Bryl
相关产品推荐
相关产品推荐

