Angular でパイプを使用して日付をフォーマットする
- Angular Date Pipe の使い方は
- Angular のある日付パイプを使用したタイムゾーンの例
- 国のロケールを持つ Angular のある日付パイプの例
- Angular でカスタム日付パイプを作成する
Angular Date Pipe を使用すると、指定された形式、タイムゾーン、および特定の詳細を使用して、Angular で日付をフォーマットできます。事前定義されたフォーマットとカスタムフォーマット文字列があります。カスタム形式の文字列では、日付形式、タイムゾーン、国のロケールなどを簡単にカスタマイズできます。いくつかの重要なステップの助けを借りて、これらすべてのステップについて詳しく説明します。この記事では、すべての疑問を解消し、例を使用して Angular でパイプを使用して日付をフォーマットする方法を示します。さぁ、始めよう。
Angular Date Pipe の使い方は
@ angle / common コンポーネントは、日付パイプを導入します。パイプを使用して、値、パーセント、日付などを含むデータを Angular でフォーマットできます。Angular のある日付パイプを設計するときは、主に 3つのパラメーターが考慮されます。
Format
Time zone
Locale
上記のパラメーターについて説明する前に、フォーマット、タイムゾーン、およびロケールを使用して、Angular のある日付パイプの構文を理解することが重要です。
{{ date_Value | date [ : format [ : timeZone [ : locale ] ] ] }}
Angular Date Pipe のパラメータと説明
Format
:フォーマットパラメータとして、標準の Angular 日付フォーマットまたはカスタム日付フォーマットを指定できます。mediumDate
がデフォルト値です。
タイムゾーン
:標準のタイムゾーンは、ユーザーマシンのローカルシステムのタイムゾーンです。タイムゾーンを調整するための追加パラメータとして、タイムゾーンオフセット(0530
)、従来の UTC / GMT(IST)、または米国東部のタイムゾーンの頭字語を指定できます。
Locale
:使用するロケール形式の規則を示します。未定義または構成済みの場合、デフォルト値はプロジェクトロケール(en-US
)です。
さらに、Angular には標準の en-US ロケールデータのみが付属していることを知っておく必要があります。日付を任意の言語でローカライズするには、関連するロケールデータをインポートする必要があります。
Angular で事前定義されたすべての日付形式のリスト
Angular 日付パイプには 12 個の事前定義された形式があります。これらすべての組み込みの日付形式のリストについて詳しく説明しましょう。
short
:M/d/yy, h:mm a
,1/01/22, 11:45 PM
. Its Angular datepipe code is{{todayDate | date:'short'}}
medium
:MMM d, y, h:mm:ss a
,Jan 01, 2022, 11:45:13 PM
. Its Angular datepipe code is{{todayDate | date:'medium'}}
long
:MMMM d, y, h:mm:ss a z
,Jan 01, 2022 at 11:45:13 PM GMT+5
. Its Angular datepipe code is{{todayDate | date:'long'}}
longDate
:MMMM d, y, Jan 01, 2022
. Its Angular datepipe code is{{todayDate | date:'longDate'}}
fullDate
:EEEE, MMMM d, y, Saturday
,Jan 01, 2022
. Its Angular datepipe code is{{todayDate | date:'fullDate'}}
shortTime
:h:mm a
,11:45 PM
. Its Angular datepipe code is{{todayDate | date:'shortTime'}}
mediumTime
:h:mm:ss a
,11:45:13 PM
. Its Angular datepipe code is{{todayDate | date:'mediumTime'}}
longTime
:h:mm:ss a z
,11:45:13 PM GMT+5
. Its Angular datepipe code is{{todayDate | date:'longTime'}}
fullTime
:h:mm:ss a zzzz
,11:45:13 PM
. Its Angular datepipe code is{{todayDate | date:'fullTime'}}
full
:EEEE, MMMM d, y, h:mm:ss a zzzz
,Saturday, Jan 01, 2021 at 11:45:13 PM GMT+05:30
. Its Angular datepipe code is{{todayDate | date:'full'}}
shortDate
:M/d/yy
,1/01/22
. Its Angular datepipe code is{{todayDate | date:'shortDate'}}
mediumDate
:MMM d, y
,Jan 01, 2022
. Its Angular datepipe code is{{todayDate | date:'mediumDate'}}
ここをクリックして、日付と時刻の形式を確認し、さらに明確にします。
Angular のある日付パイプを使用したタイムゾーンの例
日付パイプへのパラメーターとしてタイムゾーンを指定し、特定の UTC で日付を表示する日付形式を指定できます。タイムゾーン偏差(‘0530’)、従来の UTC / GMT(IST)、または米国大陸のタイムゾーンの頭字語はすべて、タイムゾーンパラメーターのオプションです。
たとえば、IST タイムゾーンで時間を表示します。
Today is {{todayDate | date:'short':'IST'}}
Today is {{todayDate | date:'short':'+05:00'}}
出力:
Today is 1/02/19, 3:30 PM
国のロケールを持つ Angular のある日付パイプの例
以下に示すように、国のロケール形式の標準に従って日付を表示するには、Angular 日付パイプの 3 番目の引数として国のロケールコードを指定する必要があります。
たとえば、ドイツはドイツ標準時
を使用しており、タイムゾーンオフセットは+01:00
です。以下に示すように、ロケールコード de
を Angular のパラメーターとして使用して、ドイツのロケールで日付と時刻を表示します。
<p>The current German date time is {{todayDate | date:'full':'+01:00':'de'}}</p>
出力:
The current German date time is Mittwoch, 5. Januar 2022 um 12:50:38 GMT+01:00
Angular でカスタム日付パイプを作成する
Angular はデフォルトで mediumDate
日付形式を使用します。それを変更して、MMM d, y, h:mm: ss a
などの組み込み形式の代わりに独自の形式を使用したい場合はどうなりますか?
これは、時刻を 2022 年 1 月 1 日午後 11 時 45 分 13 秒
として表示します。
Angular アプリケーションでは日付をたくさん表示するので、毎回 format 引数を渡す必要があります。以下に示すように、カスタムの日付パイプを作成し、これを回避するためにアプリケーション全体で使用する場合があります。
{{ todayDate | customDate }}
出力:
January 01, 2022, 11:45:13 PM
以下の手順に従って、カスタムの日付パイプを作成します。custom.datepipe.ts というファイルに次のコードを追加します。
import { Pipe, PipeTransform } from '@angular/core';
import { DatePipe } from '@angular/common';
@Pipe({
name: 'customDate'
})
export class CustomDatePipe extends
DatePipe implements PipeTransform {
transform(value: any, args?: any): any {
return super.transform(value, " MMM d, y, h:mm:ss a "); } }
これを行った後、次のステップは CustomDatePipe をインポートし、それを AppModule 宣言配列に追加することです。
import {CustomDatePipe} from './custom.datepipe';
@NgModule({
declarations: [
CustomDatePipe
]);
これで、コンポーネントファイルでカスタム日付パイプを利用できる段階になりました。
{{todayDate | customDate}}
出力:
Jan 5, 2022, 5:25:36 PM
カスタム日付形式:
Angular では、独自の日付形式を作成できます。以下は、すべての可能なカスタム日付形式の包括的なリストです。
タイプ | フォーマット | 説明 | 例 |
---|---|---|---|
時代: | G 、GG &GGG |
省略形 | AD |
GGGG |
幅 | Anno Domini |
|
GGGGG |
狭い | A |
|
年: | y |
数値:最小桁 | 2022 |
yy |
数値:2 桁でゼロが埋め込まれます | 22 |
|
yyy |
数値:3 桁でゼロが埋め込まれます | 2022 |
|
yyyy |
数値:4 桁以上でゼロが埋め込まれている | 2022 |
|
月: | M |
数値:1 桁 | 1 |
MM |
数値:2 桁でゼロが埋め込まれます | 01 |
|
MMM |
省略形 | Jan |
|
MMMM |
幅 | January |
|
MMMMM |
狭い | J |
|
スタンドアロンの月 | L |
数値:1 桁 | 8 |
LL |
数値:2 桁+ ゼロ埋め込み | 08 |
|
LLL |
省略形 | Aug |
|
LLLL |
幅 | August |
|
LLLLL |
狭い | A |
|
月の日: | d |
数値:最小桁 | 7,8 |
dd |
数値:2 桁+ ゼロ埋め込み | 13,08,19 |
|
平日 | E 、EE &EEE |
省略形 | Thu |
EEEE |
幅 | Thursday |
|
EEEEE |
狭い | T |
|
EEEEEE |
短い | Th |
|
月の週 | W |
数値:1 桁 | 2,6 |
年の週 | w |
数値:最小桁 | 7,34 |
ww |
数値:2 桁 | 43, 09 |
|
限目 | a 、aa &aaa |
省略形 | am , pm |
aaaa |
幅 | pm |
|
aaaaa |
狭い | a |
|
限目* | B 、BB &BBB |
省略形 | mid |
BBBB |
幅 | am 、pm 、midnight 、afternoon 、noon |
|
BBBBB |
狭い | md |
|
スタンドアロン期間* | b 、bb &bbb |
省略形 | mid |
bbbb |
幅 | midnight , afternoon , evening , night |
|
bbbbb |
狭い | mid |
|
小数秒 | S |
数値:1 桁 | 5,7,2 |
SS |
数値:2 桁でゼロが埋め込まれます | 96,87,47 |
|
SSS |
数値:3 桁でゼロが埋め込まれます | 435,789,670 |
|
2 番 | s |
数値:最小桁 | 3,9,56 |
ss |
数値:2 桁でゼロが埋め込まれます | 09,26,13 |
|
分 | m |
数値:最小桁 | 40,6,47,54 |
mm |
数値:2 桁でゼロが埋め込まれます | 04,51,23,28 |
|
時間 0 から 23 | H |
数値:最小桁 | 16 |
HH |
数値:2 桁でゼロが埋め込まれます | 21,19,17 |
|
1〜12 時間 | h |
数値:最小桁 | 11 |
hh |
数値:2 桁でゼロが埋め込まれます | 12 |
|
ゾーン | z 、zz &zzz |
短い特定の非ロケーション形式 | GMT-6 |
zzzz |
長い特定の非ロケーション形式 | GMT-06:00 |
|
Z 、ZZ &ZZZ |
ISO8601 基本フォーマット | -0600 |
|
ZZZZ |
長いローカライズされた GMT 形式 | GMT-06:00 |
|
ZZZZZ |
ISO8601 拡張フォーマット | -06:00 |
|
O 、OO &OOO |
短いローカライズされた GMT 形式 | GMT-6 |
|
OOOO |
長いローカライズされた GMT 形式 | GMT -06:00 |
|
カスタムフォーマットの例:
ここでは、カスタムフォーマットの非常に簡単な例について説明しました。
{{todayDate | date:'dd/MM/yy HH:mm'}}
出力:
05/01/22 17:25
Angular 日付パイプの詳細については、ここをクリックしてください。
Muhammad Adil is a seasoned programmer and writer who has experience in various fields. He has been programming for over 5 years and have always loved the thrill of solving complex problems. He has skilled in PHP, Python, C++, Java, JavaScript, Ruby on Rails, AngularJS, ReactJS, HTML5 and CSS3. He enjoys putting his experience and knowledge into words.
Facebook