프로그래밍/Javascript
[Angular] Locale 을 이용한 날짜, 숫자 포맷 지정하기
SeanYoon
2022. 5. 24. 13:15
반응형
Angular 에서 날짜, 숫자 등에 대한 포맷을 Locale 을 이용해서 셋팅할 수 있습니다.
Angular 공식 홈페이지에서는 아래와 같이 나와 있습니다
https://angular.io/api/core/LOCALE_ID
Angular
angular.io
import { LOCALE_ID } from '@angular/core';
import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';
import { AppModule } from './app/app.module';
platformBrowserDynamic().bootstrapModule(AppModule, {
providers: [{provide: LOCALE_ID, useValue: 'en-US' }]
});
저는 인도네시아의 시스템들을 주로 개발하기 때문에 관련한 셋팅을 해야했습니다.
방식은 app.module.ts 에 셋팅하고 전체 사이트에 반영하는 형태로 개발해서 사용하고 있습니다.
app.module.ts
import { NgModule, LOCALE_ID } from '@angular/core';
import { registerLocaleData } from '@angular/common';
import localeId from '@angular/common/locales/id'; // for indonesian
registerLocaleData(localeId, 'id'); // for indonesian
@NgModule({
declarations: [
AppComponent
],
imports: [ ... ],
providers: [
{ provide: LOCALE_ID, useValue: "id-ID" }, // for indonesian
....
],
bootstrap: [AppComponent]
})
export class AppModule { }
원하는 지역의 Locale 아이디를 찾아서 넣어주시면 됩니다.
이렇게 셋팅을 하신 후에 html 에서 pipe 를 이용해서 포맷을 잡아주시면 해당 로케일에 맞춰서 보여주게 됩니다.
https://angular.io/guide/i18n-common-format-data-locale
Angular
angular.io
공홈에서 설명을 잘 해주고 있는데요.
DatePipe, CurrencyPipe, DecimalPipe, PercentPipe 이렇게 4가지 파이프에서 로케일 값을 참조해서 사용하게 됩니다.
html 구문에서 다음과 같이 사용합니다.
<div>{{ row.created_at | date }}</div>
<div>{{ row.created_at | date: 'dd MMM HH:mm' }}</div>
<div>{{ row.created_at | date: 'dd/MM/yyyy HH:mm' }}</div>
<!-- Forced Locale ID -->
<div>{{ row.created_at | date: 'dd MMM HH:mm' : '' : 'en-US' }}</div>
결과물은 다음과 같이 나타납니다.
작은 도움이라도 되시길 바래요.
반응형