我有一个日期对象,这是我进行字符串化时的
const date = "2022-03-13T18:30:00.00Z"
现在我尝试使用 date-fns 将其转换为格式
format(date, "dd MMM yyyy")
这将返回
string
,而不是日期字符串中的日期对象。
我尝试过
format(parseISO(date), "dd MMM YYYY")
还是不行。接下来我可以尝试什么?
format
是一个始终返回字符串的函数。您无法让它返回 Date
对象,因为 Date
对象不仅仅是格式化字符串的一种方式。您可以在 date-fns 文档中阅读有关
format
的信息。date
对象,只需使用 Date
类的构造函数即可。以下是实例化 Date
对象的一些可接受的方法:
new Date( )
new Date(milliseconds)
new Date(datestring)
new Date(year,month,date[,hour,minute,second,millisecond ])
对于您的情况,我们将使用
new Date(dateString)
,因为您已经有了。所以你可以简单地这样做:
const date = "2022-03-13T18:30:00.00Z";
const dateObject = new Date(date);
然后你将拥有一个
Date
对象以及它附带的所有便捷方法。const
,我只是按照你所拥有的。Date
对象的内容。 教程点页面是一个很好的起点。
您显示的日期字符串 ("2022-03-13T18:30:00.00Z") 可以简单地转换为
Date
对象。现在,要将其格式化回您想要的日期字符串,请尝试使用 Intl.DateTimeFormat
。
const date = new Date("2022-03-13T18:30:00.00Z");
const formatOptions = { year: 'numeric', month: 'long', day: '2-digit' };
const [MMM, dd, yyyy] = new Intl.DateTimeFormat(`en-EN`, formatOptions)
.formatToParts(date)
.filter( v => v.type !== `literal`)
.map( v => v.value );
console.log(`${dd} ${MMM} ${yyyy}`);