【问题标题】:Angular - Get the format, as string, used to display dates according to localeAngular - 获取格式,作为字符串,用于根据语言环境显示日期
【发布时间】:2017-12-07 08:33:56
【问题描述】:

如何获取 Angular 用来显示日期的字符串格式?在我的app.module 中设置LOCALE_ID 后,我使用date 管道。

现在我想检索“dd/mm/yyyy”字符串,放入我的输入占位符。

基本上,here 的描述是针对 Angular 的。

谢谢

[编辑]

为了更明确,我不是在寻找格式化日期的方法,这已经完成(使用本机 date 管道)。我想要表示此管道使用的格式的字符串。

因为我希望我的日期选择器占位符像

“日期(格式:XXXXXX)”

我希望“XXXXXX”部分正确(即“jj/mm/aaaa”表示法语,“mm/dd/yyyy”表示英语)

【问题讨论】:

  • 我不清楚你的意思,但moment 可能会帮助你。
  • 我已经编辑了我的帖子。我希望有一种 Angular 原生方式来做到这一点
  • 你永远不会得到像“jj/mm/aaaa”这样的翻译字符串,对于你的法语例子,你可能得到的最好的是“dd/mm/yyyy”。 “英语”格式字符串在 LDML 数据(@angular/common/locales)中,所以理论上您应该能够以某种方式提取该信息,但它在英语中有什么用?就我个人而言,我只是将占位符添加为字符串并将其包含在我的翻译文件中。
  • 我想要一种更通用的方式来获取这个字符串,因为我们将处理多种语言,而且我们不知道它们的格式,我们会在这一点上信任 Angular(我可以接受 ' dd/mm/yyyy' 代表法语)

标签: angular angular-date-format


【解决方案1】:

我希望在此期间您遇到过 getLocaleDateFormat() 和 getLocaleTimeFormat()。 (角度 6)

import { getLocaleDateFormat, FormatWidth } from '@angular/common';
export class Foobar {
  constructor( @Inject( LOCALE_ID ) private locale: string ) { }

  private getDateFormat() {
    return getLocaleDateFormat( this.locale, FormatWidth.Short );
  }
}

【讨论】:

    【解决方案2】:

    如果您想在模板中以声明方式格式化日期:

    {{ today | date: 'dd/MM/yyyy' }}
    

    如果您想在代码中强制获取格式化日期:

    import { DatePipe } from '@angular/common';
    // in your component class
    var date = new DatePipe().transform(today, 'dd/MM/yyyy')
    

    【讨论】:

      猜你喜欢
      • 2015-05-22
      • 1970-01-01
      • 1970-01-01
      • 2023-04-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多