Angular でパイプを使用して日付をフォーマットする

Muhammad Adil 2023年1月30日
  1. Angular Date Pipe の使い方は
  2. Angular のある日付パイプを使用したタイムゾーンの例
  3. 国のロケールを持つ Angular のある日付パイプの例
  4. 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 では、独自の日付形式を作成できます。以下は、すべての可能なカスタム日付形式の包括的なリストです。

タイプ フォーマット 説明
時代: GGGGGG 省略形 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
平日 EEEEEE 省略形 Thu
EEEE Thursday
EEEEE 狭い T
EEEEEE 短い Th
月の週 W 数値:1 桁 2,6
年の週 w 数値:最小桁 7,34
ww 数値:2 桁 43, 09
限目 aaaaaa 省略形 am, pm
aaaa pm
aaaaa 狭い a
限目* BBBBBB 省略形 mid
BBBB ampmmidnightafternoonnoon
BBBBB 狭い md
スタンドアロン期間* bbbbbb 省略形 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
ゾーン zzzzzz 短い特定の非ロケーション形式 GMT-6
zzzz 長い特定の非ロケーション形式 GMT-06:00
ZZZZZZ ISO8601 基本フォーマット -0600
ZZZZ 長いローカライズされた GMT 形式 GMT-06:00
ZZZZZ ISO8601 拡張フォーマット -06:00
OOOOOO 短いローカライズされた GMT 形式 GMT-6
OOOO 長いローカライズされた GMT 形式 GMT -06:00

カスタムフォーマットの例:

ここでは、カスタムフォーマットの非常に簡単な例について説明しました。

{{todayDate | date:'dd/MM/yy HH:mm'}}     

出力:

05/01/22 17:25

Angular 日付パイプの詳細については、ここをクリックしてください

著者: Muhammad Adil
Muhammad Adil avatar Muhammad Adil avatar

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

関連記事 - Angular Date