DATE::PARSE 1g 2024-10-10 laplante@plcb.ca GOWEB/DATE


title: DATE::PARSE section: 1g version: 1.0.0 date: 2024-10-10 author: laplante@plcb.ca

category: GOWEB/DATE

Name

date::parse Parse an input date string

SYNOPSIS

date::parse or parse(date: string [, location: "location_string", layout: "layout_string"])

DESCRIPTION

Parses an input date string and returns a time value (which can be used with time_json).

PARAMETERS

date

The input date can be in multiple formats. The function will try to infer the layout automatically. You can also explicitly specify it using the layout parameter.

Parsing order:

  1. If the date is numeric only, parse it as seconds since the epoch.
  2. Try layout "2006-01-02 15:04:05".
  3. Try RFC1123Z format (e.g., Thu, 19 Apr 2018 11:00:49 +0000).
  4. Try layout "2006-01-02".

layout

Specifies the format of the input date.
Follows Go’s time package layouts: https://pkg.go.dev/time#pkg-constants.

location

Specifies the timezone for the parsed date.
On Linux, valid locations can be listed with:

awk '/^Z/ { print $2 }; /^L/ { print $3 }' /usr/share/zoneinfo/tzdata.zi

output is:

Africa/Algiers
Atlantic/Cape_Verde
Africa/Ndjamena
Africa/Abidjan
Africa/Cairo
Africa/Bissau
Africa/Nairobi
Africa/Monrovia
Africa/Tripoli
Indian/Mauritius
Africa/Casablanca
Africa/El_Aaiun
Africa/Maputo
Africa/Windhoek
Africa/Lagos
Africa/Sao_Tome
Africa/Johannesburg
Africa/Khartoum
Africa/Juba
Africa/Tunis
Antarctica/Casey
Antarctica/Davis
Antarctica/Mawson
Antarctica/Troll
Antarctica/Rothera
Asia/Kabul
Asia/Yerevan
Asia/Baku
Asia/Dhaka
Asia/Thimphu
Indian/Chagos
Asia/Yangon
Asia/Shanghai
Asia/Urumqi
Asia/Hong_Kong
Asia/Taipei
Asia/Macau
Asia/Nicosia
Asia/Famagusta
Asia/Tbilisi
Asia/Dili
Asia/Kolkata
Asia/Jakarta
Asia/Pontianak
Asia/Makassar
Asia/Jayapura
Asia/Tehran
Asia/Baghdad
Asia/Jerusalem
Asia/Tokyo
Asia/Amman
Asia/Almaty
Asia/Qyzylorda
Asia/Qostanay
Asia/Aqtobe
Asia/Aqtau
Asia/Atyrau
Asia/Oral
Asia/Bishkek
Asia/Seoul
Asia/Pyongyang
Asia/Beirut
Asia/Kuching
Indian/Maldives
Asia/Hovd
Asia/Ulaanbaatar
Asia/Choibalsan
Asia/Kathmandu
Asia/Karachi
Asia/Gaza
Asia/Hebron
Asia/Manila
Asia/Qatar
Asia/Riyadh
Asia/Singapore
Asia/Colombo
Asia/Damascus
Asia/Dushanbe
Asia/Bangkok
Asia/Ashgabat
Asia/Dubai
Asia/Samarkand
Asia/Tashkent
Asia/Ho_Chi_Minh
Australia/Darwin
Australia/Perth
Australia/Eucla
Australia/Brisbane
Australia/Lindeman
Australia/Adelaide
Australia/Hobart
Australia/Melbourne
Australia/Sydney
Australia/Broken_Hill
Australia/Lord_Howe
Antarctica/Macquarie
Pacific/Fiji
Pacific/Gambier
Pacific/Marquesas
Pacific/Tahiti
Pacific/Guam
Pacific/Tarawa
Pacific/Kanton
Pacific/Kiritimati
Pacific/Kwajalein
Pacific/Kosrae
Pacific/Nauru
Pacific/Noumea
Pacific/Auckland
Pacific/Chatham
Pacific/Rarotonga
Pacific/Niue
Pacific/Norfolk
Pacific/Palau
Pacific/Port_Moresby
Pacific/Bougainville
Pacific/Pitcairn
Pacific/Pago_Pago
Pacific/Apia
Pacific/Guadalcanal
Pacific/Fakaofo
Pacific/Tongatapu
Pacific/Efate
Europe/London
Europe/Dublin
WET
CET
MET
EET
Europe/Tirane
Europe/Andorra
Europe/Vienna
Europe/Minsk
Europe/Brussels
Europe/Sofia
Europe/Prague
Atlantic/Faroe
America/Danmarkshavn
America/Scoresbysund
America/Nuuk
America/Thule
Europe/Tallinn
Europe/Helsinki
Europe/Paris
Europe/Berlin
Europe/Gibraltar
Europe/Athens
Europe/Budapest
Europe/Rome
Europe/Riga
Europe/Vilnius
Europe/Malta
Europe/Chisinau
Europe/Warsaw
Europe/Lisbon
Atlantic/Azores
Atlantic/Madeira
Europe/Bucharest
Europe/Kaliningrad
Europe/Moscow
Europe/Simferopol
Europe/Astrakhan
Europe/Volgograd
Europe/Saratov
Europe/Kirov
Europe/Samara
Europe/Ulyanovsk
Asia/Yekaterinburg
Asia/Omsk
Asia/Barnaul
Asia/Novosibirsk
Asia/Tomsk
Asia/Novokuznetsk
Asia/Krasnoyarsk
Asia/Irkutsk
Asia/Chita
Asia/Yakutsk
Asia/Vladivostok
Asia/Khandyga
Asia/Sakhalin
Asia/Magadan
Asia/Srednekolymsk
Asia/Ust-Nera
Asia/Kamchatka
Asia/Anadyr
Europe/Belgrade
Europe/Madrid
Africa/Ceuta
Atlantic/Canary
Europe/Zurich
Europe/Istanbul
Europe/Kyiv
EST
MST
HST
EST5EDT
CST6CDT
MST7MDT
PST8PDT
America/New_York
America/Chicago
America/North_Dakota/Center
America/North_Dakota/New_Salem
America/North_Dakota/Beulah
America/Denver
America/Los_Angeles
America/Juneau
America/Sitka
America/Metlakatla
America/Yakutat
America/Anchorage
America/Nome
America/Adak
Pacific/Honolulu
America/Phoenix
America/Boise
America/Indiana/Indianapolis
America/Indiana/Marengo
America/Indiana/Vincennes
America/Indiana/Tell_City
America/Indiana/Petersburg
America/Indiana/Knox
America/Indiana/Winamac
America/Indiana/Vevay
America/Kentucky/Louisville
America/Kentucky/Monticello
America/Detroit
America/Menominee
America/St_Johns
America/Goose_Bay
America/Halifax
America/Glace_Bay
America/Moncton
America/Toronto
America/Winnipeg
America/Regina
America/Swift_Current
America/Edmonton
America/Vancouver
America/Dawson_Creek
America/Fort_Nelson
America/Iqaluit
America/Resolute
America/Rankin_Inlet
America/Cambridge_Bay
America/Inuvik
America/Whitehorse
America/Dawson
America/Cancun
America/Merida
America/Matamoros
America/Monterrey
America/Mexico_City
America/Ciudad_Juarez
America/Ojinaga
America/Chihuahua
America/Hermosillo
America/Mazatlan
America/Bahia_Banderas
America/Tijuana
America/Barbados
America/Belize
Atlantic/Bermuda
America/Costa_Rica
America/Havana
America/Santo_Domingo
America/El_Salvador
America/Guatemala
America/Port-au-Prince
America/Tegucigalpa
America/Jamaica
America/Martinique
America/Managua
America/Panama
America/Puerto_Rico
America/Miquelon
America/Grand_Turk
America/Argentina/Buenos_Aires
America/Argentina/Cordoba
America/Argentina/Salta
America/Argentina/Tucuman
America/Argentina/La_Rioja
America/Argentina/San_Juan
America/Argentina/Jujuy
America/Argentina/Catamarca
America/Argentina/Mendoza
America/Argentina/San_Luis
America/Argentina/Rio_Gallegos
America/Argentina/Ushuaia
America/La_Paz
America/Noronha
America/Belem
America/Santarem
America/Fortaleza
America/Recife
America/Araguaina
America/Maceio
America/Bahia
America/Sao_Paulo
America/Campo_Grande
America/Cuiaba
America/Porto_Velho
America/Boa_Vista
America/Manaus
America/Eirunepe
America/Rio_Branco
America/Santiago
America/Punta_Arenas
Pacific/Easter
Antarctica/Palmer
America/Bogota
America/Guayaquil
Pacific/Galapagos
Atlantic/Stanley
America/Cayenne
America/Guyana
America/Asuncion
America/Lima
Atlantic/South_Georgia
America/Paramaribo
America/Montevideo
America/Caracas
Etc/UTC
Etc/GMT
GMT
Etc/GMT-14
Etc/GMT-13
Etc/GMT-12
Etc/GMT-11
Etc/GMT-10
Etc/GMT-9
Etc/GMT-8
Etc/GMT-7
Etc/GMT-6
Etc/GMT-5
Etc/GMT-4
Etc/GMT-3
Etc/GMT-2
Etc/GMT-1
Etc/GMT+1
Etc/GMT+2
Etc/GMT+3
Etc/GMT+4
Etc/GMT+5
Etc/GMT+6
Etc/GMT+7
Etc/GMT+8
Etc/GMT+9
Etc/GMT+10
Etc/GMT+11
Etc/GMT+12
Factory
Australia/ACT
Australia/LHI
Australia/NSW
Australia/North
Australia/Queensland
Australia/South
Australia/Tasmania
Australia/Victoria
Australia/West
Australia/Yancowinna
Brazil/Acre
Brazil/DeNoronha
Brazil/East
Brazil/West
Canada/Atlantic
Canada/Central
Canada/Eastern
Canada/Mountain
Canada/Newfoundland
Canada/Pacific
Canada/Saskatchewan
Canada/Yukon
Chile/Continental
Chile/EasterIsland
Cuba
Egypt
Eire
Etc/GMT+0
Etc/GMT-0
Etc/GMT0
Etc/Greenwich
Etc/UCT
Etc/Universal
Etc/Zulu
GB
GB-Eire
GMT+0
GMT-0
GMT0
Greenwich
Hongkong
Iceland
Iran
Israel
Jamaica
Japan
Kwajalein
Libya
Mexico/BajaNorte
Mexico/BajaSur
Mexico/General
NZ
NZ-CHAT
Navajo
PRC
Poland
Portugal
ROC
ROK
Singapore
Turkey
UCT
US/Alaska
US/Aleutian
US/Arizona
US/Central
US/East-Indiana
US/Eastern
US/Hawaii
US/Indiana-Starke
US/Michigan
US/Mountain
US/Pacific
US/Samoa
UTC
Universal
W-SU
Zulu
America/Buenos_Aires
America/Catamarca
America/Cordoba
America/Indianapolis
America/Jujuy
America/Knox_IN
America/Louisville
America/Mendoza
America/Virgin
Pacific/Samoa
Africa/Accra
Africa/Addis_Ababa
Africa/Asmara
Africa/Bamako
Africa/Bangui
Africa/Banjul
Africa/Blantyre
Africa/Brazzaville
Africa/Bujumbura
Africa/Conakry
Africa/Dakar
Africa/Dar_es_Salaam
Africa/Djibouti
Africa/Douala
Africa/Freetown
Africa/Gaborone
Africa/Harare
Africa/Kampala
Africa/Kigali
Africa/Kinshasa
Africa/Libreville
Africa/Lome
Africa/Luanda
Africa/Lubumbashi
Africa/Lusaka
Africa/Malabo
Africa/Maseru
Africa/Mbabane
Africa/Mogadishu
Africa/Niamey
Africa/Nouakchott
Africa/Ouagadougou
Africa/Porto-Novo
America/Anguilla
America/Antigua
America/Aruba
America/Atikokan
America/Blanc-Sablon
America/Cayman
America/Creston
America/Curacao
America/Dominica
America/Grenada
America/Guadeloupe
America/Kralendijk
America/Lower_Princes
America/Marigot
America/Montserrat
America/Nassau
America/Port_of_Spain
America/St_Barthelemy
America/St_Kitts
America/St_Lucia
America/St_Thomas
America/St_Vincent
America/Tortola
Antarctica/DumontDUrville
Antarctica/McMurdo
Antarctica/Syowa
Antarctica/Vostok
Arctic/Longyearbyen
Asia/Aden
Asia/Bahrain
Asia/Brunei
Asia/Kuala_Lumpur
Asia/Kuwait
Asia/Muscat
Asia/Phnom_Penh
Asia/Vientiane
Atlantic/Reykjavik
Atlantic/St_Helena
Europe/Amsterdam
Europe/Bratislava
Europe/Busingen
Europe/Copenhagen
Europe/Guernsey
Europe/Isle_of_Man
Europe/Jersey
Europe/Ljubljana
Europe/Luxembourg
Europe/Mariehamn
Europe/Monaco
Europe/Oslo
Europe/Podgorica
Europe/San_Marino
Europe/Sarajevo
Europe/Skopje
Europe/Stockholm
Europe/Vaduz
Europe/Vatican
Europe/Zagreb
Indian/Antananarivo
Indian/Christmas
Indian/Cocos
Indian/Comoro
Indian/Kerguelen
Indian/Mahe
Indian/Mayotte
Indian/Reunion
Pacific/Chuuk
Pacific/Funafuti
Pacific/Majuro
Pacific/Midway
Pacific/Pohnpei
Pacific/Saipan
Pacific/Wake
Pacific/Wallis
Africa/Timbuktu
America/Argentina/ComodRivadavia
America/Atka
America/Coral_Harbour
America/Ensenada
America/Fort_Wayne
America/Montreal
America/Nipigon
America/Pangnirtung
America/Porto_Acre
America/Rainy_River
America/Rosario
America/Santa_Isabel
America/Shiprock
America/Thunder_Bay
America/Yellowknife
Antarctica/South_Pole
Asia/Chongqing
Asia/Harbin
Asia/Kashgar
Asia/Tel_Aviv
Atlantic/Jan_Mayen
Australia/Canberra
Australia/Currie
Europe/Belfast
Europe/Tiraspol
Europe/Uzhgorod
Europe/Zaporozhye
Pacific/Enderbury
Pacific/Johnston
Pacific/Yap
Africa/Asmera
America/Godthab
Asia/Ashkhabad
Asia/Calcutta
Asia/Chungking
Asia/Dacca
Asia/Istanbul
Asia/Katmandu
Asia/Macao
Asia/Rangoon
Asia/Saigon
Asia/Thimbu
Asia/Ujung_Pandang
Asia/Ulan_Bator
Atlantic/Faeroe
Europe/Kiev
Europe/Nicosia
Pacific/Ponape
Pacific/Truk

EXAMPLES

    res={{
        d := parse("2024-10-10");
        j := time_json(d);
        j.year;
    }}.
    → res=2024.

AUTHOR

laplante@plcb.ca

SEE ALSO

VERSION