0

我在 Angular 2 中有使用自定义格式化日期来波兰语的应用程序:

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

可以通过导入类

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

接下来,我将我的应用程序转换/升级到 Angular 4.3,并且这个类(DateFormatter)不再存在。

我有人知道它在哪里,或者我应该使用什么其他方法来实现这种格式?

4

2 回答 2

1

该类DateFormatter目前可以源代码中找到。

但是,Angular 不允许从诸如此类的深层路径导入。如果@angular/common没有公开您正在寻找的功能,则意味着它是私有的,您不应该使用它(这就是您的应用程序在升级后中断的原因)。

考虑使用DatePipe或实用程序库,例如date-fns

于 2017-08-12T12:00:14.390 回答
0

在我们的应用程序中,我们使用日期管道。例如<p class="dIB">{{bfPreventer.nextControlDate | date: 'shortDate'}}</p>

默认情况下,它采用浏览器的当前文化。但是您可以在启动时更改它。我不确定它是否完美,但它对我们很有效。

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

],
providers: [

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

]})

另外,请考虑到管道依赖于浏览器的 i18n API,所以旧的浏览器可能会有问题。

于 2017-08-12T11:59:25.280 回答