Expand description
Parts of a formatted date/time.
§Examples
use icu::calendar::Gregorian;
use icu::calendar::{Date, Time};
use icu::datetime::parts as datetime_parts;
use icu::datetime::fieldsets;
use icu::datetime::options::FractionalSecondDigits;
use icu::datetime::options::TimePrecision;
use icu::datetime::DateTimeFormatter;
use icu::decimal::parts as decimal_parts;
use icu::locale::locale;
use icu::timezone::IxdtfParser;
use writeable::assert_writeable_parts_eq;
let dtf = DateTimeFormatter::try_new(
locale!("en-u-ca-buddhist").into(),
fieldsets::YMDT::medium().with_time_precision(TimePrecision::SecondExact(FractionalSecondDigits::F2)).with_zone_specific(),
)
.unwrap();
let dtz = IxdtfParser::new().try_from_str("2023-11-20T11:35:03.5+00:00[Europe/London]").unwrap();
// Missing data is filled in on a best-effort basis, and an error is signaled.
assert_writeable_parts_eq!(
dtf.format_any_calendar(&dtz),
"Nov 20, 2566 BE, 11:35:03.50 AM GMT",
[
(0, 3, datetime_parts::MONTH),
(4, 6, decimal_parts::INTEGER),
(4, 6, datetime_parts::DAY),
(8, 12, decimal_parts::INTEGER),
(8, 12, datetime_parts::YEAR),
(13, 15, datetime_parts::ERA),
(17, 19, decimal_parts::INTEGER),
(17, 19, datetime_parts::HOUR),
(20, 22, decimal_parts::INTEGER),
(20, 22, datetime_parts::MINUTE),
(23, 28, datetime_parts::SECOND),
(23, 25, decimal_parts::INTEGER),
(25, 26, decimal_parts::DECIMAL),
(26, 28, decimal_parts::FRACTION),
// note: from 28 to 31 is a NNBSP
(31, 33, datetime_parts::DAY_PERIOD),
(34, 37, datetime_parts::TIME_ZONE_NAME),
]
);
Constants§
- A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
. - A
Part
used byFormattedDateTime
.