Date Vector/Number to ISO 8601 Date String

Versión 2.0.1 (18,2 KB) por Stephen23
Convert a Date Vector/Number to an ISO 8601 Date String. Tokens control the date/time notation.
1,3K descargas
Actualizado 29 nov 2020

Ver licencia

Easy conversion of a datetime or a date vector or a serial date number into a date string. The date string may be an ISO 8601 timestamp or a single date/time value, selected by (optional) input token/s. Multiple tokens may be used to output multiple strings.

The ISO 8601 timestamp style options supported by this function are:
* Date in calendar, ordinal, or week-numbering notation.
* Basic or extended format.
* Choice of date-time separator character.
* Full or lower precision (fewer trailing date/time units).
* Decimal fraction of the trailing unit (decimal places).

Does NOT parse or support timezones.

By default the function uses the current time and returns the basic ISO 8601 calendar timestamp: this is very useful for naming files that sort alphabetically into chronological order.

### Examples ###

* Using the date+time given by date vector [1999,1,3,15,6,48.0568].

>> datestr8601()
ans = '19990103T150648'

>> datestr8601([],'yn_HM')
ans = '1999003_1506'

>> datestr8601(clock,'*ymdHMS')
ans = '1999-01-03T15:06:48'

>> [D1,D3] = datestr8601(now-2,'D','DDD')
D1 = '5'
D3 = 'Fri'

>> datestr8601(datetime,'DDDD','d*','mmmm','yyyy')
ans = 'Sunday 3rd January 1999'

>> [da,YWD,mmyy] = datestr8601([],'d*','*YWD','mmmm','yyyy');
>> sprintf('The %s of %s has the ISO week-date "%s".',da,mmyy,YWD)
ans = 'The 3rd of January 1999 has the ISO week-date "1998-W53-7".'

### ISO 8601 Date Notations ###

Timestamps are shown here in extended format with the default date-time separator character 'T'.

1) Calendar:
string: '1999-01-03T15:06:48'
token: '*ymdHMS'

2) Ordinal:
string: '1999-003T15:06:48'
token: '*ynHMS'

3) Week-numbering:
string: '1998-W53-7T15:06:48'
token: '*YWDHMS'

### Single-Value Strings ###

* Consistent token syntax (UPPERCASE = week-numbering year, lowercase = calendar year).
* Easily adapted to other languages.
* Single-values include: day of the year or days remaining in year; year quarter (3-month or 13-week); year; month as digit or name; day of week as digit or name; date of month; hour; minute; second; deci/centi/milliseconds.

Citar como

Stephen23 (2024). Date Vector/Number to ISO 8601 Date String (, MATLAB Central File Exchange. Recuperado .

Compatibilidad con la versión de MATLAB
Se creó con R2010b
Compatible con cualquier versión
Compatibilidad con las plataformas
Windows macOS Linux
Más información sobre Dates and Time en Help Center y MATLAB Answers.

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!
Versión Publicado Notas de la versión

* Add error IDs.


* Better parsing algorithm.
* Add HTML documentation.

* Update online blurb.
* Add concatenation of remaining strings into last output (if more tokens than outputs).

- Downloadable as toolbox

- Remove calendar week number (confusing!)

- Improve token input checking and error messages.
- Restrict date-time separator character to ' ','T','@','_'.
- Add ordinals for Day of Year (required token format change).

- Removed 'F' from ISO 8601 timestamps: please use decimal fraction instead.
- Complete list of date-time separator exclusions.
- Improve examples.
- Simpler Midnight/AM/Noon/PM calculation.

- Disallow period '.' as date-time separator character.

ISO 8601 dates/timestamps:
- Allow decimal fraction of any trailing unit (decimal places).
- Allow choice of any date-time separator character.

- Allow 'F' (millisecond) in 8601 timestamp tokens.

- Fix bug in Midnight/AM/Noon/PM calculation.
- More examples.

- Help improved to better contrast calendar vs week-numbering dates.
- Remove basic format prefix 'B', and add extended format prefix '*' (logical, easier to read and search for).
- Test function string can be displayed directly in command window.

- Add day-of-week (as a number) and year (week-date) tokens.
- Examples that better illustrate the ISO 8601 week date.
- Change token syntax (for consistency with calendar / week-date year-type).

Add default time (current time).
Add default token 'BymdHMS'.
Add ordinal date with suffix, eg '3rd'.

- Now accepts Date Number OR Date Vector.
- Now accepts multiple input Tokens (to provide multiple output Strings).
- Add 13-week year-quarter token.
- Improve help documentation.

Added Ordinal Date style, and format control.

Some corrections to Description field and Mfile help comments.