Why doesn't timezone work with datetime
8 visualizzazioni (ultimi 30 giorni)
Mostra commenti meno recenti
I want to convert a posix time to a datetime for the time zone at a specific longitude. The timezone function gives you the time zone at a specific longitude, but none of the outputs are accepted by datetime.
[a,b,c] = timezone(-80)
try
datetime(1685585049.879,'ConvertFrom','posixtime','TimeZone',a)
end
try
datetime(1685585049.879,'ConvertFrom','posixtime','TimeZone',b)
end
try
datetime(1685585049.879,'ConvertFrom','posixtime','TimeZone',c)
end
0 Commenti
Risposta accettata
Star Strider
il 24 Ago 2023
The timezone function is from the Mapping Toolbox, and its results are not compatible with the datetime function. The otherwise compatible timezones function does not take longitude arguments.
Try this instead —
TZ = string(fix(-80/15)) % Time Zone (-80° Longitude)
Time = datetime(1685585049.879,'ConvertFrom','posixtime','TimeZone',TZ)
.
0 Commenti
Più risposte (1)
Seth Furman
il 14 Set 2023
Modificato: Seth Furman
il 14 Set 2023
The value of TimeZone can be an ISO 8601 character vector of the form +HH:mm or -HH:mm; for example, '+01:00', to specify a time zone that is a fixed offset from UTC.
lon = 80;
zd = timezone(lon)
tz = compose("%+03d:00",zd)
dt = datetime(1685585049.879,ConvertFrom="posixtime",TimeZone=tz)
0 Commenti
Vedere anche
Categorie
Scopri di più su Dates and Time in Help Center e File Exchange
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!