MCPcopy Create free account
hub / github.com/adobe/react-spectrum / parseAbsolute

Function parseAbsolute

packages/@internationalized/date/src/string.ts:165–195  ·  view source on GitHub ↗
(value: string, timeZone: string)

Source from the content-addressed store, hash-verified

163 * or "2021-11-07T07:45:00-07:00"). The result is converted to the provided time zone.
164 */
165export function parseAbsolute(value: string, timeZone: string): ZonedDateTime {
166 let m = value.match(ABSOLUTE_RE);
167 if (!m) {
168 throw new Error('Invalid ISO 8601 date time string: ' + value);
169 }
170
171 let year = parseNumber(m[1], -9999, 9999);
172 let era = year < 1 ? 'BC' : 'AD';
173
174 let date: Mutable<ZonedDateTime> = new ZonedDateTime(
175 era,
176 year < 1 ? -year + 1 : year,
177 parseNumber(m[2], 1, 12),
178 1,
179 timeZone,
180 0,
181 m[4] ? parseNumber(m[4], 0, 23) : 0,
182 m[5] ? parseNumber(m[5], 0, 59) : 0,
183 m[6] ? parseNumber(m[6], 0, 59) : 0,
184 m[7] ? parseNumber(m[7], 0, Infinity) * 1000 : 0
185 );
186
187 date.day = parseNumber(m[3], 0, date.calendar.getDaysInMonth(date));
188
189 if (m[8]) {
190 date.offset =
191 parseNumber(m[8], -23, 23) * 60 * 60 * 1000 + parseNumber(m[9] ?? '0', 0, 59) * 60 * 1000;
192 }
193
194 return toTimeZone(date as ZonedDateTime, timeZone);
195}
196
197/**
198 * Parses an ISO 8601 date and time string with a UTC offset (e.g. "2021-11-07T07:45:00Z"

Callers 4

parseAbsoluteToLocalFunction · 0.85
string.test.jsFile · 0.85

Calls 3

toTimeZoneFunction · 0.90
parseNumberFunction · 0.85
getDaysInMonthMethod · 0.65

Tested by

no test coverage detected