T00:00:00.000Z 这种格式是什么意思?
What does this format means T00:00:00.000Z?
谁能解释一下 javascript 中的这种格式
T00:00:00.000Z
以及如何解析它?
它是 ISO-8601 日期表示的一部分。它是不完整的,因为此模式中的完整日期表示还应包含日期:
2015-03-04T00:00:00.000Z //Complete ISO-8601 date
如果您尝试按原样解析此日期,您将收到 Invalid Date
错误:
new Date('T00:00:00.000Z'); // Invalid Date
所以,我想解析这种格式的时间戳的方法是与任何日期连接
new Date('2015-03-04T00:00:00.000Z'); // Valid Date
然后你可以只提取你想要的部分(时间戳部分)
var d = new Date('2015-03-04T00:00:00.000Z');
console.log(d.getUTCHours()); // Hours
console.log(d.getUTCMinutes());
console.log(d.getUTCSeconds());
我建议您为此使用 moment.js
。在 moment.js 您可以:
var localTime = moment().format('YYYY-MM-DD'); // store localTime
var proposedDate = localTime + "T00:00:00.000Z";
既然您暂时拥有了正确的格式,请解析它是否有效:
var isValidDate = moment(proposedDate).isValid();
// returns true if valid and false if it is not.
要获取时间部分,您可以执行以下操作:
var momentDate = moment(proposedDate)
var hour = momentDate.hours();
var minutes = momentDate.minutes();
var seconds = momentDate.seconds();
// or you can use `.format`:
console.log(momentDate.format("YYYY-MM-DD hh:mm:ss A Z"));
关于 momentjs 的更多信息http://momentjs.com/
正如一个人可能已经建议的那样,
我像这样将 ISO 8601 日期字符串直接传递给时刻...
moment.utc('2019-11-03T05:00:00.000Z').format('MM/DD/YYYY')
或
moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')
这些解决方案中的任何一个都会给您相同的结果。
console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019
更多关于 momentjs 的信息http://momentjs.com/
请使用 DateTimeFormatter ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME;
而不是 DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")
或任何模式
这解决了我下面的问题
java.time.format.DateTimeParseException: Text '2019-12-18T19:00:00.000Z' could not be parsed at index 10
因为有人问如何实现它:
使用起来很简单 momentjs :
// install using yarn
yarn add moment
// or install using npm
npm i moment
然后你可以这样做来根据你想要的格式提取日期:
import 'moment' from moment;
let isoDate = "2021-09-19T05:30:00.000Z";
let newDate = moment.utc(isoDate).format('MM/DD/YY');
console.log('converted date', newDate); // 09/23/21
let newDate2 = moment.utc(isoDate).format("MMM Do, YYYY");
console.log('converted date', newDate2); // Sept 24, 2021
谁能解释一下 javascript 中的这种格式
T00:00:00.000Z
以及如何解析它?
它是 ISO-8601 日期表示的一部分。它是不完整的,因为此模式中的完整日期表示还应包含日期:
2015-03-04T00:00:00.000Z //Complete ISO-8601 date
如果您尝试按原样解析此日期,您将收到 Invalid Date
错误:
new Date('T00:00:00.000Z'); // Invalid Date
所以,我想解析这种格式的时间戳的方法是与任何日期连接
new Date('2015-03-04T00:00:00.000Z'); // Valid Date
然后你可以只提取你想要的部分(时间戳部分)
var d = new Date('2015-03-04T00:00:00.000Z');
console.log(d.getUTCHours()); // Hours
console.log(d.getUTCMinutes());
console.log(d.getUTCSeconds());
我建议您为此使用 moment.js
。在 moment.js 您可以:
var localTime = moment().format('YYYY-MM-DD'); // store localTime
var proposedDate = localTime + "T00:00:00.000Z";
既然您暂时拥有了正确的格式,请解析它是否有效:
var isValidDate = moment(proposedDate).isValid();
// returns true if valid and false if it is not.
要获取时间部分,您可以执行以下操作:
var momentDate = moment(proposedDate)
var hour = momentDate.hours();
var minutes = momentDate.minutes();
var seconds = momentDate.seconds();
// or you can use `.format`:
console.log(momentDate.format("YYYY-MM-DD hh:mm:ss A Z"));
关于 momentjs 的更多信息http://momentjs.com/
正如一个人可能已经建议的那样,
我像这样将 ISO 8601 日期字符串直接传递给时刻...
moment.utc('2019-11-03T05:00:00.000Z').format('MM/DD/YYYY')
或
moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')
这些解决方案中的任何一个都会给您相同的结果。
console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019
更多关于 momentjs 的信息http://momentjs.com/
请使用 DateTimeFormatter ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME;
而不是 DateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")
或任何模式
这解决了我下面的问题
java.time.format.DateTimeParseException: Text '2019-12-18T19:00:00.000Z' could not be parsed at index 10
因为有人问如何实现它:
使用起来很简单 momentjs :
// install using yarn
yarn add moment
// or install using npm
npm i moment
然后你可以这样做来根据你想要的格式提取日期:
import 'moment' from moment;
let isoDate = "2021-09-19T05:30:00.000Z";
let newDate = moment.utc(isoDate).format('MM/DD/YY');
console.log('converted date', newDate); // 09/23/21
let newDate2 = moment.utc(isoDate).format("MMM Do, YYYY");
console.log('converted date', newDate2); // Sept 24, 2021