How to avoid "NaT" when converting a cell into datetime ? (Or: how to add missing parts of datetime ?)
11 ビュー (過去 30 日間)
古いコメントを表示
How to avoid "NaT" when converting a cell into datetime ?
(Or: how to add missing parts of datetime ?)
a = [
{'14-Jul-2021 17:00:00'}
{'15-Jul-2021 12:00:00'}
{'16-Jul-2021 21:00:00'}
{'17-Jul-2021' }
{'18-Jul-2021 06:00:00'}
{'19-Jul-2021 04:00:00'}
{'20-Jul-2021 17:00:00'}
{'21-Jul-2021 08:00:00'}]
datetime(a)
As workaround, how to add a representative hour (e.g. '12:00:00') where it is missing, in order to avoid a "NaT" ?
0 件のコメント
採用された回答
Stephen23
2022 年 8 月 12 日
編集済み: Stephen23
2022 年 8 月 12 日
"How to avoid "NaT" when converting a cell into datetime ?"
Convert each cell individually. Certainly not as efficient as one DATETIME call, but it is fairly simple:
C = {...
'14-Jul-2021 17:00:00'
'15-Jul-2021 12:00:00'
'16-Jul-2021 21:00:00'
'17-Jul-2021'
'18-Jul-2021 06:00:00'
'19-Jul-2021 04:00:00'
'20-Jul-2021 17:00:00'
'21-Jul-2021 08:00:00'}; % one cell array :)
D = cellfun(@datetime,C)
5 件のコメント
Stephen23
2022 年 8 月 12 日
"but the thing is that the position can change"
Of course, you can use any indexing you want, you are not restricted to just using index 4. For example, if you want to detect all character vectors shorter than 12 characters and add 12 hours to the corresponding datetime:
C = {...
'14-Jul-2021 17:00:00'
'15-Jul-2021 12:00:00'
'16-Jul-2021 21:00:00'
'17-Jul-2021'
'18-Jul-2021 06:00:00'
'19-Jul-2021 04:00:00'
'20-Jul-2021 17:00:00'
'21-Jul-2021 08:00:00'}; % one cell array :)
D = cellfun(@datetime,C);
X = cellfun(@numel,C)<12; % or whatever logic you want to use (which you did not explain)
D(X) = D(X) + hours(12)
その他の回答 (0 件)
参考
カテゴリ
Help Center および File Exchange で Dates and Time についてさらに検索
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!