问题描述
我需要扩展预定义的角日期管道格式(您可以在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';
)