我遇到了这个问题,我找到的最简单的解决方案是创建共享服务方法,该方法通过本地化返回日期格式的字符串
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, yyyy, HH:mm:ss'
: 'dd. MMM yyyy, HH:mm:ss';
)
更新:
由于我有更多经验,因此想在您拥有多种语言的情况下分享一些不同的方法:
getDateFormat(): string {
const formatsByLocale = {
'en': 'MMM dd, yyyy, HH:mm:ss'
}
const format = formatsByLocale[this.translateService.currentLang]
return format || 'dd. MMM yyyy, HH:mm:ss';
)
想法是您可以拥有许多具有不同格式的不同语言环境并访问具有相同 currentLang 属性的语言环境,而无需指定语言。在我看来,这使它更具可重用性和可读性。顺便说一下||
,当没有格式时,它会使用默认的符号,无论该符号后面是什么。