フィルターのクリア

Change datetime display format

80 ビュー (過去 30 日間)
Orion
Orion 2020 年 10 月 18 日
コメント済み: Star Strider 2020 年 10 月 27 日
I have a julian date that I convert to a MATLAB datetime variable using:
tj = 2.456870501842000e+06;
mtime = datetime(tj,'ConvertFrom','juliandate','TimeZone','UTCLeapSeconds')
This creates the datetime variable "mtime" displayed as 2014-08-01T00:02:39.149Z. I want to change the display format of mtime (for plotting purposes) to show only hour:minute,
mtime.Format = 'HH:mm';
But I get this error:
The date format for UTCLeapSeconds datetimes must be 'uuuu-MM-dd'T'HH:mm:ss.SSS'Z''.
So is it not possible to change the display format of a datetime variable?

回答 (1 件)

Star Strider
Star Strider 2020 年 10 月 18 日
It is possible. It just takes some coding gymnastics:
tj = 2.456870501842000e+06;
mtime = datetime(tj,'ConvertFrom','juliandate','TimeZone','UTCLeapSeconds', 'Format','uuuu-MM-dd''T''HH:mm:ss.SSS''Z''')
ltime = mtime;
ltime.TimeZone = 'local';
ltime.Format = 'HH:mm'
producing:
ltime =
datetime
18:02
Set ‘TimeZone’ to be whatever you want it to be.
  2 件のコメント
Orion
Orion 2020 年 10 月 27 日
編集済み: Orion 2020 年 10 月 27 日
Thanks for the answer. To clarify, I want to keep the time zone as 'UTCLeapSeconds', and only show the 'HH:mm' (00:02) part of the time as a tickmark label. I don't want to show the full time (eg: 2014-08-01T00:02:39.149Z) on the plot because in that format, a single one covers the entire axis while there are several tickmarks.
Star Strider
Star Strider 2020 年 10 月 27 日
Simple enough. Just change the time zone back to UTC instead of local:
tj = 2.456870501842000e+06;
mtime = datetime(tj,'ConvertFrom','juliandate','TimeZone','UTCLeapSeconds', 'Format','uuuu-MM-dd''T''HH:mm:ss.SSS''Z''')
ltime = mtime;
ltime.TimeZone = 'UTC';
ltime.Format = 'HH:mm'
producing:
ltime =
datetime
00:02
.

サインインしてコメントする。

カテゴリ

Help Center および File ExchangeGraphics Performance についてさらに検索

Community Treasure Hunt

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

Start Hunting!

Translated by