我有一个datatime字符串(来自django/python(,看起来像这样:
datatime_str='2020-08-18 16:48:13.722422+00:00'
然后我做,在Matlab 2018a:
fmt_dt='yyyy-MM-dd HH:mm:ss.SSSSSS+HH:mm';
datetime(datatime_str,'TimeZone','local','Format',fmt_dt);
我得到:
2020-08-18 00:00:13.722422+00:00
我不确定我做错了什么,但结果显然是错误的:(
任何帮助都将是伟大的
是的,+00:00
的格式应该是时区,而不是小时、分钟。但是,您可以根据需要设置显示格式,这可能与输入不同。默认的Matlabdatetime
显示格式丢弃了小数秒(我认为还有时区(。例如:
fmt_dt_input='yyyy-MM-dd HH:mm:ss.SSSSSSxxxxx';
fmt_dt_show='yyyy-MM-dd HH:mm:ss.SSSSSS xxxxx';
datatime_str='2020-08-18 16:48:13.722422+00:00';
t = datetime(datatime_str,'InputFormat',fmt_dt_input,'TimeZone','local','Format',fmt_dt_show)
输出:2020-08-18 16:48:13.722422 +00:00
编辑:顺便说一句,关于datetime
的信息可以在这里找到
您的输入字符串在末尾包含UTC偏移+00:00
,您将其解析为小时和分钟,这就是为什么它们在结果中设置为00:00。使用例如
datetime('2020-08-18 16:48:13.722422+00:00', 'InputFormat', 'yyyy-MM-dd HH:mm:ss.SSSSSSZ', 'TimeZone', 'UTC')
而是(将TimeZone参数更改为所需的任何值(。