problem with datetime : day is wrong

year=2008
year = 2008
month=2
month = 2
day=31
day = 31
hh =[ year month day ]
hh = 1×3
2008 2 31
datetime(hh) %it's not correct ((correct day is 31 not 2)
ans = datetime
02-Mar-2008
%i try to change datetime default but the result is the same
datetime.setDefaultFormats('defaultdate','yyyy-MM-dd')
datetime(hh)
ans = datetime
2008-03-02

 采纳的回答

Angelo Yeo
Angelo Yeo 2023-9-22
There was no Feb 31st in 2008.

4 个评论

And there is no Feb 31st in any year.
If you expect that datetime should error in this scenario, there are sometimes good reasons to allow non-standard dates that represent other dates. Though a more common February non-standard date is February 30th, as stated by the largest section on that Wikipedia page.
+1 @Steven Lord I use this feature a lot. E.g., "What date was the 200th day of the year in 1997?"
datetime(1997,1,200)
ans = datetime
19-Jul-1997
It is a common trick to code datetime([year 1 daynumber]) instead of datetime([year 1 1])+days(daynumber-1)

请先登录,再进行评论。

更多回答(0 个)

类别

帮助中心File 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