图片缩略图

ISO 8601日期字符串到串行日期编号

version 2.0.1 (15.5 KB) by 斯蒂芬。
将ISO 8601日期字符串转换为串行日期编号。自动检测或选择时间戳样式。

1.4 k下载

更新2020年11月29日

查看许可协议

容易转换一个ISO 8601格式的日期字符串(时间戳)到一个串行日期号码。ISO 8601格式的时间戳/s在日期字符串中被自动检测,或者通过提供可选的输入令牌,时间戳/s格式可以被限制为只检测一种特定的样式。

此函数支持的ISO 8601时间戳样式选项有:金宝app
*按顺序、日历或星期编号的日期。
*基本或扩展格式。
*选择日期-时间分隔符。
*全精度或更低的精度(更少尾随日期/时间单位)。
*末尾单位的小数部分(小数位)。

不解析或不支持时区。金宝app

函数返回:
1)从输入字符串中的时间戳转换而来的序列号日期。
2)被检测到的时间戳分割的输入字符串部分。
3)给出检测到的时间戳样式的令牌Cell Array。

# # # # # #例子

*使用日期向量[1999,1,3,15,6,48.0568]给出的日期+时间。

>> datenum8601('1999-01-03 15:06:48.0568') % calendar, extended
ans = 730123.62972287962

>> datenum8601('1999003T150648.0568') %序数,基本
ans = 730123.62972287962

>> datenum8601('1998W537_150648.0568') %星期编号,基本
ans = 730123.62972287962

>> [dtn,spl,tkc] = datenum8601('A19990103B1999-003C1998-W53-7D')
dtn = (730123; 730123; 730123)
spl = {' A ', ' B ', ' C ', ' D '}
tkc ={“ymd”;“* yn”;“* YWD”}

> [dtn,spl] = datenum8601('1999-003T15')
dtn = 730123.6250
spl = {'',''}
tkc = {' * ynTH '}

>> [dtn,spl] = datenum8601('1999-01-03T15','*ymd') %指定匹配令牌。
dtn = 730123.0000
spl ={”、“T15”}

>> datevec(datenum8601('19990103 200012')) %默认允许'T @_'分隔符。
ans =
1999 1 3 20 0
>> datevec(datenum8601('19990103 200012','_')) % date-time separator char. >> datevec(datenum8601('19990103 200012','_')) % date-time分隔符
ans =
1999 1 3 0 0 0
2000 12 1 000

### ISO 8601日期符号###

时间戳在这里以扩展格式显示,使用默认的日期-时间分隔符“T”。

1)日历:
<一> - <月> < dayofmonth > T <小时>:<分钟>:<二>
字符串:1999 - 01 - 03 t15:06:48”
令牌:“* ymdHMS”

2)顺序:
<一> - < dayofyear > T <小时>:<分钟>:<二>
弦:“1999 - 003 t15:06:48”
令牌:“* ynHMS”

3) Week-numbering:
<一> - w < weeknumber > - < dayofweek > T <小时>:<分钟>:<二>
弦:“1998 - w53 7 - t15:06:48”
令牌:“* YWDHMS”

引用作为

斯蒂芬(2021)。ISO 8601日期字符串到串行日期编号(//www.tatmou.com/matlabcentral/fileexchange/39389-iso-8601-date-string-to-serial-date-number), MATLAB中央文件交换。检索

MATLAB版本兼容性
创建R2010b
与任何版本兼容
平台的兼容性
窗户 macOS Linux

社区寻宝

在MATLAB中心找到宝藏,并发现社区如何可以帮助你!

开始狩猎!