微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

仅使用月份和年份本地化格式扩展预定义的Angular日期管道格式例如05/2020表示``en''或05.2020表示``de''区域

如何解决仅使用月份和年份本地化格式扩展预定义的Angular日期管道格式例如05/2020表示``en''或05.2020表示``de''区域

我需要扩展预定义的角日期管道格式(您可以在here中看到)格式,该格式仅包含年份中的月份,例如05/2020(代表“ en”)或05.2020(代表“ de”) ,必须本地化。有什么正确的方法吗?我知道可以创建自己的管道并以某些所需的格式扩展,但是当我指出格式时“ MM / yyyy”它将使用该格式来格式化每个区域的每个日期,但是我需要将其本地化,因此我需要将自定义格式添加到已经存在的功能中。

我有一个想法是使用moment.js来执行此操作,而不是使用有角日期管道,另一个想法是从已经本地化的字符串中手动删除日期(我同意这是很愚蠢的想法),但是我正在运行实际上没有想法。

任何简单的方法吗?还是必须在这里定义其他方法

解决方法

我遇到了这个问题,我发现的最简单的解决方案是创建共享服务方法,该方法通过本地化返回日期格式的字符串

getDateFormat(format?: 'full' | 'short'): string {
        if (format === 'full') {
            return this.translateService.currentLang === 'en'
                ? 'MMM dd,yyyy,HH:mm:ss'
                : 'dd. MMM yyyy,HH:mm:ss';
        }
        if (format === 'short') {
            return this.translateService.currentLang === 'en'
                ? 'MMM dd,yyyy'
                : 'dd. MMM yyyy';
        }
    }

我这里的格式多于一种,但是您可以轻松地仅用一种格式,只需检查用户使用的是哪种语言:

getDateFormat(): string {
  return this.translateService.currentLang === 'en' 
    ? 'MMM dd,HH:mm:ss'
    : 'dd. MMM yyyy,HH:mm:ss';
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。