System.ArgumentOutOfRangeException:'Year,Month和Day参数描述了一个不可表示的DateTime。'

问题描述 投票:-2回答:2

请参阅以下代码:

[TestFixture]
    public class UnitTest1
    {
        [Test]
        public void TestMethod1()
        {
            DateTime dob = new DateTime(2001, 02, 29);
            DateTime todaysDate = new DateTime(2001, 02, 29);
        }
    }

当我运行此代码时,该方法的第二行抛出异常:System.ArgumentOutOfRangeException:'Year,Month和Day参数描述了一个不可表示的DateTime。'。但是,如果我注释掉该方法的第一行,它就会成功运行。问题是什么?

c#
2个回答
6
投票

因为在2001年2月只有28天没有29 :-)


1
投票

如果你偶然发现这篇文章有类似的关于日期的混淆 - 我发现如果你有一个接一个的两个日期分配,并且第一个有问题,那么可能会抛出第二个(这不是'有问题)。

请参阅下面的截图 - 第一行是坏的,但是第二行会抛出异常。

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.