1-hour offset in time string conversion
조회 수: 13 (최근 30일)
이전 댓글 표시
Hi there, I'm having trouble in converting string to datenum values. Somehow, there will be an offset of one hour when converting back to datestr. So, here is my example:
>> timestr = '1986-03-13T11:59:58.000Z';
>> test = datenum(timestr,'yyyy-mm-ddTHH:MM:SS.000Z')
test =
7.2544e+05
>> datestr(test,'yyyy-mm-ddTHH:MM:SS')
ans =
1986-03-13T12:59:58
To me, this seems pretty weird. I might be missing something very simple, though. I'd be glad if any of you could help me! Thanks
Dennis
댓글 수: 1
Star Strider
2014년 10월 24일
I suggest you report this as a bug, specifically because in R2014b I get an even weirder result from running your code:
1986-03-13T04:59:58
a -19 hour error!
채택된 답변
Peter Perkins
2014년 10월 31일
Dennis, I'm guessing you're somewhere in Europe, and that Star Strider is somewhere in the western US. As in, UTC+1 and UTC-7.
Reason is, the Z in your string is being treated as "Zulu", i.e., UTC, and the datenum is converted to your local time zone. Z has never (far as I know) been documented as something you could put in a date format for datestr. Prior to R2013a, this threw an error.
I'm not sure what you need to do with a date string like this. You may simply want to ignore the Z and preserve the time stamp itself. If they all have a trailing 'Z', I recommend just stripping that off.
If you have access to R2014b, you might consider using the new date and time features. For example:
>> timestr = '1986-03-13T11:59:58.000Z'
timestr =
1986-03-13T11:59:58.000Z
>> datetime(timestr,'Format','yyyy-MM-dd''T''HH:mm:ss.SSSXXX','TimeZone','UTC')
ans =
1986-03-13T11:59:58.000Z
>> datetime(timestr,'Format','yyyy-MM-dd''T''HH:mm:ss.SSSXXX','TimeZone','Europe/Paris')
ans =
1986-03-13T12:59:58.000+01:00
>> datetime(timestr,'Format','yyyy-MM-dd''T''HH:mm:ss.SSS''Z''')
ans =
1986-03-13T11:59:58.000Z
Hope this helps.
댓글 수: 0
추가 답변 (1개)
참고 항목
카테고리
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!