简体   繁体   English

从给出错误日期的 csv 文件中读取日期

[英]Reading dates from a csv file giving wrong date

I have a csv file with a column of dates in the format dd/mm/yyyy HH:MM.我有一个 csv 文件,其中有一列日期,格式为 dd/mm/yyyy HH:MM。 The first entry has '28/06/2017 17:10'.第一个条目是“28/06/2017 17:10”。 Excel for some reason displays this as 28/06/2017 5:10:00 PM.由于某种原因,Excel 将其显示为 28/06/2017 5:10:00 PM。 I want to read this column in matlab and output it in the format dd-mmmm-yyyy HH:MM:SS.我想在matlab中读取此列并以dd-mmmm-yyyy HH:MM:SS格式输出。 I get a strange date for the ouptut in each column, with the first entry being: '12-August-0033 17:10:00', but the time is fine.我在每列中得到一个奇怪的输出日期,第一个条目是:'12-August-0033 17:10:00',但时间很好。

The dates begin in column 2, row 2 of my csv file.日期从我的 csv 文件的第 2 列第 2 行开始。

[num,txt,raw] = xlsread('winter_cruise_2017_10min_avg.csv');
formatIn = 'dd/mm/yyyy HH:MM';
A = datestr(raw(2:end,2),formatIn);
formatOut = 'dd-mmmm-yyyy HH:MM:SS';
B = datestr(A,formatOut);

For a winter_cruise_2017_10min_avg.csv containing:对于winter_cruise_2017_10min_avg.csv包含:

28/06/2017 17:10,

You can use datetime to interpret it correctly:您可以使用datetime来正确解释它:

%% Load data
[num,txt,raw] = xlsread('winter_cruise_2017_10min_avg.csv');

%% Interpret text:
formatIn = 'dd/MM/yyyy HH:mm:ss'; % Corrected!
A = datetime(raw, 'InputFormat', formatIn);
%{
A = 
  datetime
   28-Jun-2017 17:10:00
%}

%% Reformat datetime
formatOut = 'dd-mmmm-yyyy HH:MM:SS';
B = datestr(A,formatOut);
%{
B =
    '28-June-2017 17:10:00'
%}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM