You've already forked parse_datetime
mirror of
https://github.com/uutils/parse_datetime.git
synced 2026-06-10 16:13:15 -07:00
fix: remove unsupported named time zones
This commit is contained in:
+14
-163
@@ -331,237 +331,88 @@ fn timezone_name_offset(input: &mut &str) -> ModalResult<Offset> {
|
||||
Ok(tz)
|
||||
}
|
||||
|
||||
/// Timezone list extracted from:
|
||||
/// https://www.timeanddate.com/time/zones/
|
||||
/// Named timezone list.
|
||||
///
|
||||
/// The full list of timezones can be extracted from
|
||||
/// https://www.timeanddate.com/time/zones/. GNU date only supports a subset of
|
||||
/// these. We support the same subset as GNU date.
|
||||
///
|
||||
/// From the GNU date manual:
|
||||
///
|
||||
/// > Time zone items other than ‘UTC’ and ‘Z’ are obsolescent and are not
|
||||
/// > recommended, because they are ambiguous; for example, ‘EST’ has a
|
||||
/// > different meaning in Australia than in the United States, and ‘A’ has
|
||||
/// > different meaning as a military time zone than as an obsolete RFC 822
|
||||
/// > time zone. Instead, it's better to use unambiguous numeric time zone
|
||||
/// > corrections like ‘-0500’.
|
||||
fn tzname_to_offset(input: &str) -> ModalResult<Offset> {
|
||||
let mut offset_str = match input {
|
||||
"z" => Ok("+0"),
|
||||
"yekt" => Ok("+5"),
|
||||
"yekst" => Ok("+6"),
|
||||
"yapt" => Ok("+10"),
|
||||
"yakt" => Ok("+9"),
|
||||
"yakst" => Ok("+10"),
|
||||
"y" => Ok("-12"),
|
||||
"x" => Ok("-11"),
|
||||
"wt" => Ok("+0"),
|
||||
"wst" => Ok("+13"),
|
||||
"wita" => Ok("+8"),
|
||||
"wit" => Ok("+9"),
|
||||
"wib" => Ok("+7"),
|
||||
"wgt" => Ok("-2"),
|
||||
"wgst" => Ok("-1"),
|
||||
"wft" => Ok("+12"),
|
||||
"wet" => Ok("+0"),
|
||||
"west" => Ok("+1"),
|
||||
"wat" => Ok("+1"),
|
||||
"wast" => Ok("+2"),
|
||||
"warst" => Ok("-3"),
|
||||
"wakt" => Ok("+12"),
|
||||
"w" => Ok("-10"),
|
||||
"vut" => Ok("+11"),
|
||||
"vost" => Ok("+6"),
|
||||
"vlat" => Ok("+10"),
|
||||
"vlast" => Ok("+11"),
|
||||
"vet" => Ok("-4"),
|
||||
"v" => Ok("-9"),
|
||||
"uzt" => Ok("+5"),
|
||||
"uyt" => Ok("-3"),
|
||||
"uyst" => Ok("-2"),
|
||||
"utc" => Ok("+0"),
|
||||
"ulat" => Ok("+8"),
|
||||
"ulast" => Ok("+9"),
|
||||
"u" => Ok("-8"),
|
||||
"tvt" => Ok("+12"),
|
||||
"trt" => Ok("+3"),
|
||||
"tot" => Ok("+13"),
|
||||
"tost" => Ok("+14"),
|
||||
"tmt" => Ok("+5"),
|
||||
"tlt" => Ok("+9"),
|
||||
"tkt" => Ok("+13"),
|
||||
"tjt" => Ok("+5"),
|
||||
"tft" => Ok("+5"),
|
||||
"taht" => Ok("-10"),
|
||||
"t" => Ok("-7"),
|
||||
"syot" => Ok("+3"),
|
||||
"sst" => Ok("-11"),
|
||||
"srt" => Ok("-3"),
|
||||
"sret" => Ok("+11"),
|
||||
"sgt" => Ok("+8"),
|
||||
"sct" => Ok("+4"),
|
||||
"sbt" => Ok("+11"),
|
||||
"sast" => Ok("+2"),
|
||||
"samt" => Ok("+4"),
|
||||
"sakt" => Ok("+11"),
|
||||
"s" => Ok("-6"),
|
||||
"rott" => Ok("-3"),
|
||||
"ret" => Ok("+4"),
|
||||
"r" => Ok("-5"),
|
||||
"qyzt" => Ok("+6"),
|
||||
"q" => Ok("-4"),
|
||||
"pyt" => Ok("-4"),
|
||||
"pyst" => Ok("-3"),
|
||||
"pwt" => Ok("+9"),
|
||||
"pt" => Ok("-7"),
|
||||
"pst" => Ok("-8"),
|
||||
"pont" => Ok("+11"),
|
||||
"pmst" => Ok("-3"),
|
||||
"pmdt" => Ok("-2"),
|
||||
"pkt" => Ok("+5"),
|
||||
"pht" => Ok("+8"),
|
||||
"phot" => Ok("+13"),
|
||||
"pgt" => Ok("+10"),
|
||||
"pett" => Ok("+12"),
|
||||
"petst" => Ok("+12"),
|
||||
"pet" => Ok("-5"),
|
||||
"pdt" => Ok("-7"),
|
||||
"p" => Ok("-3"),
|
||||
"orat" => Ok("+5"),
|
||||
"omst" => Ok("+6"),
|
||||
"omsst" => Ok("+7"),
|
||||
"o" => Ok("-2"),
|
||||
"nzst" => Ok("+12"),
|
||||
"nzdt" => Ok("+13"),
|
||||
"nut" => Ok("-11"),
|
||||
"nst" => Ok("-3:30"),
|
||||
"nrt" => Ok("+12"),
|
||||
"npt" => Ok("+5:45"),
|
||||
"novt" => Ok("+7"),
|
||||
"novst" => Ok("+7"),
|
||||
"nft" => Ok("+11"),
|
||||
"nfdt" => Ok("+12"),
|
||||
"ndt" => Ok("-2:30"),
|
||||
"nct" => Ok("+11"),
|
||||
"n" => Ok("-1"),
|
||||
"myt" => Ok("+8"),
|
||||
"mvt" => Ok("+5"),
|
||||
"mut" => Ok("+4"),
|
||||
"mt" => Ok("-6"),
|
||||
"mst" => Ok("-7"),
|
||||
"msk" => Ok("+3"),
|
||||
"msd" => Ok("+4"),
|
||||
"mmt" => Ok("+6:30"),
|
||||
"mht" => Ok("+12"),
|
||||
"mdt" => Ok("-6"),
|
||||
"mawt" => Ok("+5"),
|
||||
"mart" => Ok("-9:30"),
|
||||
"magt" => Ok("+11"),
|
||||
"magst" => Ok("+12"),
|
||||
"m" => Ok("+12"),
|
||||
"lint" => Ok("+14"),
|
||||
"lhst" => Ok("+10:30"),
|
||||
"lhdt" => Ok("+11"),
|
||||
"l" => Ok("+11"),
|
||||
"kuyt" => Ok("+4"),
|
||||
"kst" => Ok("+9"),
|
||||
"krat" => Ok("+7"),
|
||||
"krast" => Ok("+8"),
|
||||
"kost" => Ok("+11"),
|
||||
"kgt" => Ok("+6"),
|
||||
"k" => Ok("+10"),
|
||||
"jst" => Ok("+9"),
|
||||
"ist" => Ok("+5:30"),
|
||||
"irst" => Ok("+3:30"),
|
||||
"irkt" => Ok("+8"),
|
||||
"irkst" => Ok("+9"),
|
||||
"irdt" => Ok("+4:30"),
|
||||
"iot" => Ok("+6"),
|
||||
"idt" => Ok("+3"),
|
||||
"ict" => Ok("+7"),
|
||||
"i" => Ok("+9"),
|
||||
"hst" => Ok("-10"),
|
||||
"hovt" => Ok("+7"),
|
||||
"hovst" => Ok("+8"),
|
||||
"hkt" => Ok("+8"),
|
||||
"hdt" => Ok("-9"),
|
||||
"h" => Ok("+8"),
|
||||
"gyt" => Ok("-4"),
|
||||
"gst" => Ok("+4"),
|
||||
"gmt" => Ok("+0"),
|
||||
"gilt" => Ok("+12"),
|
||||
"gft" => Ok("-3"),
|
||||
"get" => Ok("+4"),
|
||||
"gamt" => Ok("-9"),
|
||||
"galt" => Ok("-6"),
|
||||
"g" => Ok("+7"),
|
||||
"fnt" => Ok("-2"),
|
||||
"fkt" => Ok("-4"),
|
||||
"fkst" => Ok("-3"),
|
||||
"fjt" => Ok("+12"),
|
||||
"fjst" => Ok("+13"),
|
||||
"fet" => Ok("+3"),
|
||||
"f" => Ok("+6"),
|
||||
"et" => Ok("-4"),
|
||||
"est" => Ok("-5"),
|
||||
"egt" => Ok("-1"),
|
||||
"egst" => Ok("+0"),
|
||||
"eet" => Ok("+2"),
|
||||
"eest" => Ok("+3"),
|
||||
"edt" => Ok("-4"),
|
||||
"ect" => Ok("-5"),
|
||||
"eat" => Ok("+3"),
|
||||
"east" => Ok("-6"),
|
||||
"easst" => Ok("-5"),
|
||||
"e" => Ok("+5"),
|
||||
"ddut" => Ok("+10"),
|
||||
"davt" => Ok("+7"),
|
||||
"d" => Ok("+4"),
|
||||
"chst" => Ok("+10"),
|
||||
"cxt" => Ok("+7"),
|
||||
"cvt" => Ok("-1"),
|
||||
"ct" => Ok("-5"),
|
||||
"cst" => Ok("-6"),
|
||||
"cot" => Ok("-5"),
|
||||
"clt" => Ok("-4"),
|
||||
"clst" => Ok("-3"),
|
||||
"ckt" => Ok("-10"),
|
||||
"cist" => Ok("-5"),
|
||||
"cidst" => Ok("-4"),
|
||||
"chut" => Ok("+10"),
|
||||
"chot" => Ok("+8"),
|
||||
"chost" => Ok("+9"),
|
||||
"chast" => Ok("+12:45"),
|
||||
"chadt" => Ok("+13:45"),
|
||||
"cet" => Ok("+1"),
|
||||
"cest" => Ok("+2"),
|
||||
"cdt" => Ok("-5"),
|
||||
"cct" => Ok("+6:30"),
|
||||
"cat" => Ok("+2"),
|
||||
"cast" => Ok("+8"),
|
||||
"c" => Ok("+3"),
|
||||
"btt" => Ok("+6"),
|
||||
"bst" => Ok("+6"),
|
||||
"brt" => Ok("-3"),
|
||||
"brst" => Ok("-2"),
|
||||
"bot" => Ok("-4"),
|
||||
"bnt" => Ok("+8"),
|
||||
"b" => Ok("+2"),
|
||||
"aoe" => Ok("-12"),
|
||||
"azt" => Ok("+4"),
|
||||
"azst" => Ok("+5"),
|
||||
"azot" => Ok("-1"),
|
||||
"azost" => Ok("+0"),
|
||||
"awst" => Ok("+8"),
|
||||
"awdt" => Ok("+9"),
|
||||
"at" => Ok("-4:00"),
|
||||
"ast" => Ok("-3"),
|
||||
"art" => Ok("-3"),
|
||||
"aqtt" => Ok("+5"),
|
||||
"anat" => Ok("+12"),
|
||||
"anast" => Ok("+12"),
|
||||
"amt" => Ok("-4"),
|
||||
"amst" => Ok("-3"),
|
||||
"almt" => Ok("+6"),
|
||||
"akst" => Ok("-9"),
|
||||
"akdt" => Ok("-8"),
|
||||
"aft" => Ok("+4:30"),
|
||||
"aet" => Ok("+11"),
|
||||
"aest" => Ok("+10"),
|
||||
"aedt" => Ok("+11"),
|
||||
"adt" => Ok("+4"),
|
||||
"acwst" => Ok("+8:45"),
|
||||
"act" => Ok("-5"),
|
||||
"acst" => Ok("+9:30"),
|
||||
"acdt" => Ok("+10:30"),
|
||||
"a" => Ok("+1"),
|
||||
_ => Err(ErrMode::Backtrack(ContextError::new())),
|
||||
}?;
|
||||
|
||||
Reference in New Issue
Block a user