Birisi, lütfen bu tür biçimi javascript'te açıklayabilir mi
T00:00:00.000Z
Ve nasıl ayrıştırılır?
Birisi, lütfen bu tür biçimi javascript'te açıklayabilir mi
T00:00:00.000Z
Ve nasıl ayrıştırılır?
Yanıtlar:
ISO-8601 tarih temsilinin bir parçasıdır . Eksiktir çünkü bu modeldeki tam bir tarih temsili tarihi de içermelidir:
2015-03-04T00:00:00.000Z //Complete ISO-8601 date
Bu tarihi olduğu gibi ayrıştırmaya çalışırsanız bir Invalid Date
hata alırsınız :
new Date('T00:00:00.000Z'); // Invalid Date
Öyleyse, bir zaman damgasını bu biçimde çözümlemenin yolu, herhangi bir tarihle uyumlaştırmaktır.
new Date('2015-03-04T00:00:00.000Z'); // Valid Date
Daha sonra sadece istediğiniz kısmı çıkartabilirsiniz (zaman damgası kısmı)
var d = new Date('2015-03-04T00:00:00.000Z');
console.log(d.getUTCHours()); // Hours
console.log(d.getUTCMinutes());
console.log(d.getUTCSeconds());
getUTCHours
, getUTCMinutes
ve getUTCSeconds
. Aksi takdirde, yerel saat diliminin davranışını veriyorsunuz, bu da hangi saat dilimine ve seçtiğiniz tarihe bağlı olarak DST nedeniyle farklı sonuçlar verecek.
moment.js
bunun için kullanmanızı öneririm . Moment.js'de şunları yapabilirsiniz:
var localTime = moment().format('YYYY-MM-DD'); // store localTime
var proposedDate = localTime + "T00:00:00.000Z";
Artık bir süre için doğru biçime sahip olduğunuza göre, geçerliyse ayrıştırın:
var isValidDate = moment(proposedDate).isValid();
// returns true if valid and false if it is not.
ve zaman bölümleri almak için aşağıdakilere benzer bir şey yapabilirsiniz:
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 hakkında daha fazla bilgi http://momentjs.com/
moment.utc(...)
elde edilen değerin orijinal değerle aynı UTC bölgesinde olmasını da düşünebilirsiniz .
Bir kişinin daha önce önerdiği gibi,
Geçtim ISO 8601 tarih dizesini doğrudan şu ana kadar ...
`moment.utc('2019-11-03T05:00:00.000Z').format('MM/DD/YYYY')`
veya
`moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')`
bu çözümlerden herhangi biri size aynı sonucu verecektir.
`console.log(moment('2019-11-03T05:00:00.000Z').utc().format('MM/DD/YYYY')) // 11/3/2019`
Lütfen ISO_DATE_TIME = DateTimeFormatter.ISO_DATE_TIME;
bunun yerine DateTimeFormatter kullanınDateTimeFormatter.ofPattern("dd-MM-yyyy HH:mm:ss")
herhangi bir kalıp
Bu benim sorunumu çözdü
java.time.format.DateTimeParseException: '2019-12-18T19: 00: 00.000Z' metni dizin 10'da ayrıştırılamadı