How to convert a column in a table to date format for plotting a time series?

47 次查看(过去 30 天)
Dear MATLAB friends
I´m struggling with the conversion of a column to the date format. The cells in the row are written as '2012-09-01T00:00:00.000Z' . I want to convert all the cells in the column to dates that I can use for plotting a time series.
Any handy hints for this issue?
Thank you already in advance!
Regards
Tom

采纳的回答

Harry Laing
Harry Laing 2020-12-9
You can use the datetime function to convert from string to datetime format for plotting. However, the letter T and Z in your string may give you a headache here.
Either manually or via writing a script, replace the T with a space, and remove the Z, then you can send the entire column of data to the datetime function like so:
datetime(Column_of_Time_Strings,'InputFormat','yyyy-MM-dd HH:mm:ss.SSS')
e.g.
datetime('2012-09-01 00:00:00.000','InputFormat','yyyy-MM-dd HH:mm:ss.SSS')
ans=
datetime
01-Sep-2012 00:00:00
Assuming all your time strings in the column follow the same format with a letter T and Z, you could use something like the function strrep to replace parts of the string like so:
newStr = strrep('2012-09-01T00:00:00.000Z', 'T', ' ') % This replaces T with a space
newStr = strrep(newStr, 'Z', '') % This replaces Z with no space (nothing)
  1 个评论
Tom Kristian Hoffmann
Hey Harry,
thank you so much for your fast help! Replacing the letters with space/nothing and then converting the strings to datetime format 'yyyy-MM-dd HH:mm:ss' was succesfull!

请先登录,再进行评论。

更多回答(1 个)

Eric Sofen
Eric Sofen 2020-12-11
There's no need to replace the 'T' and 'Z' literals. Datetime formats can include literals:
datetime(Column_of_Time_Strings,'InputFormat',"yyyy-MM-dd'T'HH:mm:ss.SSS'Z'")

类别

Help CenterFile Exchange 中查找有关 Dates and Time 的更多信息

标签

Community Treasure Hunt

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

Start Hunting!

Translated by