DatePipe
根据区域设置规则格式化日期值。
Formats a date value according to locale rules.
{{ value_expression | date [ : format [ : timezone [ : locale ] ] ] }}
NgModule
输入值
value | any | 日期表达式: The date expression: a |
参数
format | string | 要包含的日期、时间部分的格式,使用预定义选项或自定义格式字符串。 The date/time components to include, using predefined options or a custom format string. 可选. 默认值是 |
timezone | string | 一个时区偏移(比如 A timezone offset (such as 可选. 默认值是 |
locale | string | 要使用的区域格式规则的区域代码。 如果不提供,就使用 A locale code for the locale format rules to use. When not supplied, uses the value of 可选. 默认值是 |
参见
说明
Angular 只自带了 en-US 区域的数据。要想在其它语言中对日期进行本地化,你必须导入相应的区域数据。 欲知详情,参见 I18n guide。
Only the en-US locale data comes with Angular. To localize dates in another language, you must import the corresponding locale data. See the I18n guide for more information.
使用说明
当输入值发生变化时,该管道的结果并不会改变。如果不想在每个变更检测周期中都强制重新格式化该日期,请把日期看做一个不可变对象, 当需要让该管道重新运行时,请赋给它一个新的对象,以更改它的引用。
The result of this pipe is not reevaluated when the input is mutated. To avoid the need to reformat the date on every change-detection cycle, treat the date as an immutable object and change the reference when the pipe needs to run again.
预定义的格式选项
Pre-defined format options
下面是 en-US 区域的例子。
Examples are given in en-US locale.
'short': 等价于'M/d/yy, h:mm a'(6/15/15, 9:03 AM).'short': equivalent to'M/d/yy, h:mm a'(6/15/15, 9:03 AM).'medium': 等价于'MMM d, y, h:mm:ss a'(Jun 15, 2015, 9:03:01 AM).'medium': equivalent to'MMM d, y, h:mm:ss a'(Jun 15, 2015, 9:03:01 AM).'long': 等价于'MMMM d, y, h:mm:ss a z'(`June 15, 2015 at 9:03:01 AM'long': equivalent to'MMMM d, y, h:mm:ss a z'(`June 15, 2015 at 9:03:01 AM
GMT+1`).
'full': 等价于'EEEE, MMMM d, y, h:mm:ss a zzzz'(`Monday, June 15, 2015 at'full': equivalent to'EEEE, MMMM d, y, h:mm:ss a zzzz'(`Monday, June 15, 2015 at
9:03:01 AM GMT+01:00`).
'shortDate': 等价于'M/d/yy'(6/15/15).'shortDate': equivalent to'M/d/yy'(6/15/15).'mediumDate': 等价于'MMM d, y'(Jun 15, 2015).'mediumDate': equivalent to'MMM d, y'(Jun 15, 2015).'longDate': 等价于'MMMM d, y'(June 15, 2015).'longDate': equivalent to'MMMM d, y'(June 15, 2015).'fullDate': 等价于'EEEE, MMMM d, y'(Monday, June 15, 2015).'fullDate': equivalent to'EEEE, MMMM d, y'(Monday, June 15, 2015).'shortTime': 等价于'h:mm a'(9:03 AM).'shortTime': equivalent to'h:mm a'(9:03 AM).'mediumTime': 等价于'h:mm:ss a'(9:03:01 AM).'mediumTime': equivalent to'h:mm:ss a'(9:03:01 AM).'longTime': 等价于'h:mm:ss a z'(9:03:01 AM GMT+1).'longTime': equivalent to'h:mm:ss a z'(9:03:01 AM GMT+1).'fullTime': 等价于'h:mm:ss a zzzz'(9:03:01 AM GMT+01:00).'fullTime': equivalent to'h:mm:ss a zzzz'(9:03:01 AM GMT+01:00).
自定义格式选项
Custom format options
你可以使用符号来构造出格式字符串,以指定日期-时间值的各个部分,如下表所示。 具体格式取决于区域设置。 标 * 的字段表示仅在特定区域的数据中才有效。
You can construct a format string using symbols to specify the components of a date-time value, as described in the following table. Format details depend on the locale. Fields marked with (*) are only available in the extra data set for the given locale.
| G, GG & GGG | AD | ||
| GGGG | Anno Domini | ||
| GGGGG | A | ||
| y | 2, 20, 201, 2017, 20173 | ||
| yy | 02, 20, 01, 17, 73 | ||
| yyy | 002, 020, 201, 2017, 20173 | ||
| yyyy | 0002, 0020, 0201, 2017, 20173 | ||
| M | 9, 12 | ||
| MM | 09, 12 | ||
| MMM | Sep | ||
| MMMM | September | ||
| MMMMM | S | ||
| L | 9, 12 | ||
| LL | 09, 12 | ||
| LLL | Sep | ||
| LLLL | September | ||
| LLLLL | S | ||
| w | 1... 53 | ||
| ww | 01... 53 | ||
| W | 1... 5 | ||
| d | 1 | ||
| dd | 01 | ||
| E, EE & EEE | Tue | ||
| EEEE | Tuesday | ||
| EEEEE | T | ||
| EEEEEE | Tu | ||
| a, aa & aaa | am/pm or AM/PM | ||
| aaaa | a)a when missing) | ante meridiem/post meridiem | |
| aaaaa | a/p | ||
| B, BB & BBB | mid. | ||
| BBBB | am, pm, midnight, noon, morning, afternoon, evening, night | ||
| BBBBB | md | ||
| b, bb & bbb | mid. | ||
| bbbb | am, pm, midnight, noon, morning, afternoon, evening, night | ||
| bbbbb | md | ||
| h | 1, 12 | ||
| hh | 01, 12 | ||
| H | 0, 23 | ||
| HH | 00, 23 | ||
| m | 8, 59 | ||
| mm | 08, 59 | ||
| s | 0... 59 | ||
| ss | 00... 59 | ||
| S | 0... 9 | ||
| SS | 00... 99 | ||
| SSS | 000... 999 | ||
| z, zz & zzz | GMT-8 | ||
| zzzz | GMT-08:00 | ||
| Z, ZZ & ZZZ | ISO8601 | -0800 | |
| ZZZZ | GMT-8:00 | ||
| ZZZZZ | ISO8601 | -08:00 | |
| O, OO & OOO | GMT-8 | ||
| OOOO | GMT-08:00 |
请注意,时区校正不适用于没有时间部分的ISO字符串,例如“2016-09-19”
Note that timezone correction is not applied to an ISO string that has no time component, such as "2016-09-19"
格式范例
Format examples
下面这些例子会把日期转换成多种格式。 这里假设 dateObj 是个 JavaScript 的 Date 对象: 2015 年 6 月 15 日 21 时 43 分 11 秒, 使用的是 en-US 区域的当地时间。
These examples transform a date into various formats, assuming that dateObj is a JavaScript Date object for year: 2015, month: 6, day: 15, hour: 21, minute: 43, second: 11, given in the local time for the en-US locale.
{{ dateObj | date }} // output is 'Jun 15, 2015'
{{ dateObj | date:'medium' }} // output is 'Jun 15, 2015, 9:43:11 PM'
{{ dateObj | date:'shortTime' }} // output is '9:43 PM'
{{ dateObj | date:'mm:ss' }} // output is '43:11'
使用范例
Usage example
下列组件借助一个日期管道来以不同的格式显示当前日期。
The following component uses a date pipe to display the current date in different formats.
@Component({
selector: 'date-pipe',
template: `<div>
<p>Today is {{today | date}}</p>
<p>Or if you prefer, {{today | date:'fullDate'}}</p>
<p>The time is {{today | date:'h:mm a z'}}</p>
</div>`
})
// Get the current date and time as a date-time value.
export class DatePipeComponent {
today: number = Date.now();
}