2017-08-12 3 views
0

Ich habe Anwendung in Angular 2, die benutzerdefinierten Formatierung Datum polnischen verwenden:Angular 4 - DateFormatter - wie man

return DateFormatter.format(new Date(date + ' 12:00:00'), 'pl-PL', 'd MMMM y'); 

Es ist möglich, nach Klasse importieren

import { DateFormatter } from '@angular/common/src/facade/intl'; 

Als nächste I Umwandlung/Aufwertung meine Anwendung auf Angular 4.3 und diese Klasse (DateFormatter) ist nicht mehr da.

Ich weiß jemand, wo es sich befindet, oder welche anderen Methoden sollte ich verwenden, um eine solche Formatierung zu erreichen?

Antwort

0

In unserer Anwendung verwenden wir date pipe. Z.B. <p class="dIB">{{bfPreventer.nextControlDate | date: 'shortDate'}}</p>

Standardmäßig wird die aktuelle Kultur Ihres Browsers verwendet. Aber Sie können es beim Start ändern. Ich bin mir nicht sicher, ob es perfekt ist, aber es funktioniert für uns gut.

@NgModule({ 
bootstrap: [AppComponent], 
declarations: [ 
    ...pageComponents 
], 
imports: [ 
    BrowserModule, 
    ... 
    TranslateModule.forRoot(), 

], 
providers: [ 

    { provide: LOCALE_ID, useValue: window.navigator.language.indexOf("en") >= 0 ? "en-US" : "nb-NO" }, 

]}) 

Auch nehmen Sie bitte in der Überlegung, dass das Rohr auf i18n API des Browsers könnte beruht, so alte Browser haben Probleme damit.

1

Die DateFormatter Klasse kann derzeit im Quellcode here gefunden werden.

Allerdings erlaubt Angular den Import aus einem tiefen Pfad wie diesem nicht. Wenn @angular/common die gesuchte Funktion nicht verfügbar macht, bedeutet das, dass es privat ist und Sie es nicht verwenden sollten (weshalb Ihre Anwendung nach dem Upgrade abgebrochen wurde).

Verwenden Sie die DatePipe oder eine Dienstprogrammbibliothek wie date-fns.