@awsui/components-react
Version:
On July 19th, 2022, we launched [Cloudscape Design System](https://cloudscape.design). Cloudscape is an evolution of AWS-UI. It consists of user interface guidelines, front-end components, design resources, and development tools for building intuitive, en
44 lines • 1.76 kB
JavaScript
// Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
// SPDX-License-Identifier: Apache-2.0
import { isValid, parseISO } from 'date-fns';
import { formatTimeOffsetLocalized } from './format-time-offset';
export default function formatDateLocalized({ date: isoDate, hideTimeOffset, isDateOnly, isMonthOnly, timeOffset, locale, }) {
let date = parseISO(isoDate);
// if the date is not ISO formatted, fallback to built-in date parsing
if (!isValid(date)) {
date = new Date(isoDate);
}
if (isMonthOnly) {
const formattedMonthDate = new Intl.DateTimeFormat(locale, {
month: 'long',
year: 'numeric',
}).format(date);
return formattedMonthDate;
}
const formattedDate = new Intl.DateTimeFormat(locale, {
month: 'long',
year: 'numeric',
day: 'numeric',
}).format(date);
if (isDateOnly) {
return formattedDate;
}
const formattedTime = new Intl.DateTimeFormat(locale, {
hour: '2-digit',
hourCycle: 'h23',
minute: '2-digit',
second: '2-digit',
}).format(date);
const formattedDateTime = formattedDate + getDateTimeSeparator(locale) + formattedTime;
if (hideTimeOffset) {
return formattedDateTime;
}
const formattedTimeOffset = formatTimeOffsetLocalized(isoDate, timeOffset);
return formattedDateTime + ' ' + formattedTimeOffset;
}
// Languages in which date and time are separated just with a space, without comma
const languagesWithoutDateTimeSeparator = ['ja', 'zh-CN', 'zh-TW'];
function getDateTimeSeparator(locale) {
return locale && languagesWithoutDateTimeSeparator.includes(locale) ? ' ' : ', ';
}
//# sourceMappingURL=format-date-localized.js.map