This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This snippet demonstrates Pythonic formatting and parsing of | |
# ISO 8601 ordinal dates (4-digit year + "-" + ordinal day). | |
# Note: an ordinal day in this context is the nth day of | |
# the year, with Jan 1 being ordinal day 1 and Dec 31 | |
# of non-leap year (a "common year") being day 365. | |
from datetime import datetime | |
d = datetime.strptime("2020-355", "%Y-%j") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This snippet demonstrates Pythonic formatting and parsing of | |
# ISO 8601 weeks. | |
# The first ISO week of the year is the first week containing | |
# a Thursday. | |
# ISO weeks begin on Monday, with Monday being day 1. | |
from datetime import datetime | |
d = datetime.strptime("2020-W17-7", "%G-W%V-%u") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This snippet demonstrates Pythonic formatting and parsing of | |
# ISO 8601 durations. | |
# A little work is required to navigate between Python's | |
# timedelta syntax and ISO 8601 duration syntax. | |
import re | |
from datetime import datetime | |
from datetime import timedelta |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# This snippet demonstrates Pythonic formatting and parsing of ISO 8601 dates. | |
from datetime import datetime | |
# datetime.strptime() is used to parse iso 8601 strings to | |
# Python datetime.datetime instances. | |
# datetime.strftime() is used to format Python datetime.datetime instances | |
# to ISO 8601 strings. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This snippet demonstrates Golang formatting and parsing of | |
// ISO 8601 dates, times, time zones | |
import( | |
"fmt" | |
"time" | |
) | |
loc, _ := time.LoadLocation("America/Los_Angeles") |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// Passing a string to new Date() is cross-implementation-safe only if the | |
// format of the string conforms to ECMAScript's specified format. | |
// From the specification (https://tc39.es/ecma262/#sec-date.parse): | |
// " If the String does not conform to that format the function may fall | |
// back to any implementation-specific heuristics or implementation-specific date formats. " | |
// As such, we are good to go here with passing it a correct ISO 8601 date/time string. | |
let d = new Date("2020-04-02T13:00:00.000Z") | |
// The beauty of a fixed-width ISO 8601 output string. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* | |
* dateFromISODatetime creates a JavaScript date from a string that adheres to | |
* ECMAScript's specified syntax: | |
* Zulu/UTC time: | |
* YYYY-MM-DDTHH:mm:ss.sssZ | |
* Specified time zone offset: | |
* YYYY-MM-DDTHH:mm:ss.sss±HH:mm | |
* Local time (no time zone specification): | |
* YYYY-MM-DDTHH:mm:ss.sss | |
*/ |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//------------------------------------------------------------------------------ | |
// Constants | |
//------------------------------------------------------------------------------ | |
const MIN_YEAR =1; | |
const MAX_YEAR = 9999; | |
const MIN_MONTH = 1; | |
const MAX_MONTH = 12; | |
const MIN_DAY = 1; | |
const MIN_HOUR = 0; | |
const MAX_HOUR = 24; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//------------------------------------------------------------------------------ | |
// Constants | |
//------------------------------------------------------------------------------ | |
const MIN_YEAR =1; | |
const MAX_YEAR = 9999; | |
const MIN_MONTH = 1; | |
const MAX_MONTH = 12; | |
const MIN_DAY = 1; | |
const MIN_HOUR = 0; | |
const MAX_HOUR = 24; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// This snippet demonstrates Golang formatting and parsing of ISO 8601 durations. | |
// A little work is required to navigate between Golang's | |
// duration syntax and ISO 8601 duration syntax. | |
import ( | |
"errors" | |
"fmt" | |
"regexp" | |
"strings" | |
"time" |
OlderNewer