ZonedDateTimeFormatter.mjs (1738B)
1 import { DateTimeFormatter } from "icu4x" 2 import { IsoDate } from "icu4x" 3 import { Locale } from "icu4x" 4 import { Time } from "icu4x" 5 import { TimeZone } from "icu4x" 6 import { TimeZoneInfo } from "icu4x" 7 import { UtcOffset } from "icu4x" 8 import { ZonedDateTimeFormatter } from "icu4x" 9 export function formatIso(zonedDateTimeFormatterLocaleName, zonedDateTimeFormatterFormatterLocaleName, zonedDateTimeFormatterFormatterLength, zonedDateTimeFormatterFormatterTimePrecision, zonedDateTimeFormatterFormatterAlignment, zonedDateTimeFormatterFormatterYearStyle, dateYear, dateMonth, dateDay, timeHour, timeMinute, timeSecond, timeSubsecond, zoneIdId, zoneOffsetOffset, zoneVariant) { 10 11 let zonedDateTimeFormatterLocale = Locale.fromString(zonedDateTimeFormatterLocaleName); 12 13 let zonedDateTimeFormatterFormatterLocale = Locale.fromString(zonedDateTimeFormatterFormatterLocaleName); 14 15 let zonedDateTimeFormatterFormatter = DateTimeFormatter.createYmdt(zonedDateTimeFormatterFormatterLocale,zonedDateTimeFormatterFormatterLength,zonedDateTimeFormatterFormatterTimePrecision,zonedDateTimeFormatterFormatterAlignment,zonedDateTimeFormatterFormatterYearStyle); 16 17 let zonedDateTimeFormatter = ZonedDateTimeFormatter.createGenericShort(zonedDateTimeFormatterLocale,zonedDateTimeFormatterFormatter); 18 19 let date = new IsoDate(dateYear,dateMonth,dateDay); 20 21 let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond); 22 23 let zoneId = TimeZone.createFromBcp47(zoneIdId); 24 25 let zoneOffset = UtcOffset.fromString(zoneOffsetOffset); 26 27 let zone = new TimeZoneInfo(zoneId,zoneOffset,zoneVariant); 28 29 let out = zonedDateTimeFormatter.formatIso(date,time,zone); 30 31 32 return out; 33 }