a3db819c9e
Spec discussion: https://github.com/tc39/ecma402/issues/30 It's in stage 4 and Firefox has already implemented it. For now, it's added to HARMONY_IN_PROGRESS bucket behind '--datetime-format-to-parts' flag. BUG=v8:5244 TEST=intl/date-format/date-format-to-parts.js TEST=test262/intl402/DateTimeFormat/prototype/formatToParts/* Review-Url: https://codereview.chromium.org/2273953003 Cr-Commit-Position: refs/heads/master@{#39225}
21 lines
948 B
JavaScript
21 lines
948 B
JavaScript
// Copyright 2016 the V8 project authors. All rights reserved.
|
|
// Use of this source code is governed by a BSD-style license that can be
|
|
// found in the LICENSE file.
|
|
|
|
// Flags: --datetime-format-to-parts
|
|
|
|
var d = new Date(2016, 11, 15, 14, 10, 34);
|
|
var df = Intl.DateTimeFormat("ja",
|
|
{hour: 'numeric', minute: 'numeric', second: 'numeric', year: 'numeric',
|
|
month: 'numeric', day: 'numeric', timeZoneName: 'short', era: 'short'});
|
|
|
|
var formattedParts = df.formatToParts(d);
|
|
|
|
var formattedReconstructedFromParts = formattedParts.map((part) => part.value)
|
|
.reduce((accumulated, part) => accumulated + part);
|
|
assertEquals(df.format(d), formattedReconstructedFromParts);
|
|
// 西暦2016年11月15日 14:10:34 GMT-7
|
|
assertEquals(["era", "year", "literal", "month", "literal", "day", "literal",
|
|
"hour", "literal", "minute", "literal", "second", "literal",
|
|
"timeZoneName"], formattedParts.map((part) => part.type));
|