String Locale::formatDateTime(const DateComponents& date, FormatType formatType) { if (date.getType() == DateComponents::Invalid) return String(); DateTimeStringBuilder builder(*this, date); switch (date.getType()) { case DateComponents::Time: builder.build(formatType == FormatTypeShort ? shortTimeFormat() : timeFormat()); break; case DateComponents::Date: builder.build(dateFormat()); break; case DateComponents::Month: builder.build(formatType == FormatTypeShort ? shortMonthFormat() : monthFormat()); break; case DateComponents::Week: builder.build(weekFormatInLDML()); break; case DateComponents::DateTime: case DateComponents::DateTimeLocal: builder.build(formatType == FormatTypeShort ? dateTimeFormatWithoutSeconds() : dateTimeFormatWithSeconds()); break; case DateComponents::Invalid: ASSERT_NOT_REACHED(); break; } return builder.toString(); }
void WeekInputType::setupLayoutParameters(DateTimeEditElement::LayoutParameters& layoutParameters, const DateComponents&) const { layoutParameters.dateTimeFormat = weekFormatInLDML(); layoutParameters.fallbackDateTimeFormat = "'Week' ww-yyyy"; if (!parseToDateComponents(element()->fastGetAttribute(minAttr), &layoutParameters.minimum)) layoutParameters.minimum = DateComponents(); if (!parseToDateComponents(element()->fastGetAttribute(maxAttr), &layoutParameters.maximum)) layoutParameters.maximum = DateComponents(); layoutParameters.placeholderForYear = "----"; }