JavaScript中如何将epoch时间戳格式化为DD/MM/YYYY格式
解决方案
核心原理
你拿到的epoch日期是秒级Unix时间戳,而JavaScript内置的Date构造函数只接受毫秒级时间戳,所以需要先将时间戳乘以1000再转换为日期对象,之后格式化输出为DD/MM/YYYY格式即可。
完整修改后代码
const yahooStockAPI = require('yahoo-stock-api'); // 日期格式化工具函数:输入秒级epoch时间,返回DD/MM/YYYY格式字符串 function formatDate(epochSeconds) { const date = new Date(epochSeconds * 1000); // 自动补前导零 const day = String(date.getDate()).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0'); // getMonth返回值范围为0-11,需要+1对应实际月份 const year = date.getFullYear(); return `${day}/${month}/${year}`; } async function main() { const startDate = new Date('07/01/2021'); const endDate = new Date('07/25/2021'); // 拿到原始返回数据 const rawData = await yahooStockAPI.getHistoricalPrices(startDate, endDate, 'AMZN', '1d'); // 遍历处理每一条行情的日期字段 const formattedData = { ...rawData, results: rawData.results.map(item => ({ ...item, date: formatDate(item.date) // 替换原始时间戳为格式化后的日期 })) }; console.log(formattedData); } main();
简化写法
如果不需要兼容特别旧的运行环境,可以直接用内置的本地化日期API实现,代码更简洁:
function formatDate(epochSeconds) { // 英国地区的默认日期格式就是DD/MM/YYYY,直接调用即可 return new Date(epochSeconds * 1000).toLocaleDateString('en-GB'); }
内容的提问来源于stack exchange,提问作者user139442
相关产品推荐
相关产品推荐

