如何将字符串转换为日期 - 无效日期

时间:2017-05-19 13:17:48

标签: javascript date momentjs

我的项目中有moment作为库,因此欢迎使用moment的答案。

我的日期 2017年5月17日,我需要将其转换为有效的日期对象。我怎样才能做到这一点?

以下两项都会返回Invalid Date

moment('17th May 2017').format(...)
new Date('17th May 2017')

奇怪的是,我可以使用moment格式化为'Do MMMM YYYY',它会像上面那样输出日期,但我可以这样做。反之亦然。

更新

请参阅this JSFiddle工作地点。

但是,当我将其移植到我的React应用程序中时,它无法正常工作

const {
  safe_date: date,
} = firstVideo;
console.log(
  'MomentJS me!',
  date,
  moment(date, 'dd MMM yyyy'),
  moment(date, 'dd MMM yyyy').valueOf(),
);

date是一个字符串

我的console.log

的输出
MomentJS me! 17th May 2017 ... NaN

我对moment(date.toString(), 'dd MMM yyyy')的console.log不感兴趣所以我省略了它,奇怪的是valueOf()返回NaN但是在JSFiddle上正确返回。

1 个答案:

答案 0 :(得分:-2)

试试moment('17th May 2017', "dd'th' MMM yyyy")。 我试过java正常工作

SimpleDateFormat outputFormat = new SimpleDateFormat("dd'th' MMM yyyy");
System.out.println(outputFormat.parse("17th May 2017"));