3 回答
TA贡献1790条经验 获得超9个赞
您需要了解 aDateTime只是表示时间点的对象。它不存储有关其格式化方式的信息。以下是相同的DateTime,只是格式不同:
05/16/2018
5/16/2018
因为它们代表同一个时间点。
这就像行为方式int一样。它也会“删除你的前导零”:
int a = 05;
Console.WriteLine(a); // just prints "5".
因为05和5是相同的int,就目前int而言。
是否在 a 中添加前导零DateTime取决于您如何格式化它。它们仅在您将您的转换DateTime为字符串时出现。05/16/2018并且5/16/2018是不同string的。
如果你想要前导零,只需指定一个日期格式,就像dd/MM/yyyy你想输出它一样:
Console.WriteLine(dateTime.toString("dd/MM/yyyy")); // prints leading zeroes!
TA贡献1860条经验 获得超8个赞
首先,您的字符串DateTime
格式(MM/dd/yyyy
)令人困惑!它将为字符串 DataTime 值(如"05/08/2018"
. 所以你必须使用ParseExact
而不是Parse
如下:
DateTime dt = DateTime.ParseExact(datetime,"MM/dd/yyyy", CultureInfo.InvariantCulture);
它给出的输出为 2018 年 5 月 16 日,但我需要它作为 2018 年 5 月 16 日。那么,我该如何实现这个结果呢?
您可以简单地实现这一点,我将您的机器DateTime
格式更改为前导零DataTime
格式!因为默认情况下 C#DateTime
采用机器格式的Datatime
格式。
好吧,我还检查了测试控制台应用程序,以确认如果您的机器格式包含前导零,则转换后的DateTime
可以包含前导零,而无需将其转换为字符串。DateTime
TA贡献1802条经验 获得超6个赞
"5/16/2018"
是字符串表示 od DateTime 值。如果要以前导零输出,可以使用自定义格式:
dt.ToString("dd/MM/yyyy");
- 3 回答
- 0 关注
- 176 浏览
添加回答
举报