1import { Calendar } from "icu4x" 2import { Date } from "icu4x" 3import { IsoDate } from "icu4x" 4import { Locale } from "icu4x" 5import { Time } from "icu4x" 6import { TimeZone } from "icu4x" 7import { TimeZoneInfo } from "icu4x" 8import { UtcOffset } from "icu4x" 9import { ZonedDateTimeFormatter } from "icu4x" 10export function format(zonedDateTimeFormatterLocaleName, zonedDateTimeFormatterLength, dateYear, dateMonth, dateDay, dateCalendarLocaleName, timeHour, timeMinute, timeSecond, timeSubsecond, zoneTimeZoneIdId, zoneOffsetOffset, zoneZoneVariant) { 11 12 let zonedDateTimeFormatterLocale = Locale.fromString(zonedDateTimeFormatterLocaleName); 13 14 let zonedDateTimeFormatter = ZonedDateTimeFormatter.createWithLength(zonedDateTimeFormatterLocale,zonedDateTimeFormatterLength); 15 16 let dateCalendarLocale = Locale.fromString(dateCalendarLocaleName); 17 18 let dateCalendar = Calendar.createForLocale(dateCalendarLocale); 19 20 let date = Date.fromIsoInCalendar(dateYear,dateMonth,dateDay,dateCalendar); 21 22 let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond); 23 24 let zoneTimeZoneId = TimeZone.createFromBcp47(zoneTimeZoneIdId); 25 26 let zoneOffset = UtcOffset.fromString(zoneOffsetOffset); 27 28 let zone = new TimeZoneInfo(zoneTimeZoneId,zoneOffset,zoneZoneVariant); 29 30 let out = zonedDateTimeFormatter.format(date,time,zone); 31 32 33 return out; 34} 35export function formatIso(zonedDateTimeFormatterLocaleName, zonedDateTimeFormatterLength, dateYear, dateMonth, dateDay, timeHour, timeMinute, timeSecond, timeSubsecond, zoneTimeZoneIdId, zoneOffsetOffset, zoneZoneVariant) { 36 37 let zonedDateTimeFormatterLocale = Locale.fromString(zonedDateTimeFormatterLocaleName); 38 39 let zonedDateTimeFormatter = ZonedDateTimeFormatter.createWithLength(zonedDateTimeFormatterLocale,zonedDateTimeFormatterLength); 40 41 let date = new IsoDate(dateYear,dateMonth,dateDay); 42 43 let time = new Time(timeHour,timeMinute,timeSecond,timeSubsecond); 44 45 let zoneTimeZoneId = TimeZone.createFromBcp47(zoneTimeZoneIdId); 46 47 let zoneOffset = UtcOffset.fromString(zoneOffsetOffset); 48 49 let zone = new TimeZoneInfo(zoneTimeZoneId,zoneOffset,zoneZoneVariant); 50 51 let out = zonedDateTimeFormatter.formatIso(date,time,zone); 52 53 54 return out; 55} 56