javascript - Hur får man exakt tidszon med hjälp av date-fns?
Jag använder följande datumrör för att formatera datum med date-fns-biblioteket
date.pipe.ts
import { Pipe, PipeTransform } from '@angular/core';
import { format } from 'date-fns';
@Pipe({
name: 'formatDate'
})
export class FormatDatePipe implements PipeTransform {
transform(value: string | number | Date, dateFormat: string): string {
return format(value, dateFormat);
}
}
komponent.html
<h1> {{ startDate | formatDate: 'DD-MM-YYYY HH:mm:ss.SSSZ' }} </h1>
Jag får följande resultat
utgång
01-01-2021 07:09:00.000-05:00
men jag försöker få den exakta tidszonen istället för bara -05:00, till exempel, i detta fall (UTC-5) Förväntat resultat
01-01-2021 07:09:00.000 (UTC-5)
Svar #1
Du behöver använda OOOO eller zzzz som nämnts på date-fns format-dokumentationssidan. Ändra antalet bokstäver (t.ex. O eller OO eller OOO eller OOOO) enligt dina behov.
Förutom detta har du använt några fel bokstäver t.ex. har du använt
Yistället föryDistället förd
Demo:
import { format } from 'date-fns';
const now = new Date();
console.log(format(now, "dd-MM-yyyy HH:mm:ss.SSSOOOO"));
Utdata från ett exempel på en körning i min tidszon, Europa/London:
07-08-2021 13:17:55.549GMT+01:00
ONLINE DEMO
(Obs: Klicka på Console längst ner till höger på ONLINE DEMO-sidan.)
