为了账号安全,请及时绑定邮箱和手机立即绑定

将字符串转换为具有前导零的日期时间 C#

将字符串转换为具有前导零的日期时间 C#

C#
青春有我 2022-06-12 15:02:39
我有一个格式的日期时间MM/dd/yyyy:string datetime = "05/16/2018"现在,根据要求,我需要将其转换string为DateTime. 每当我这样做时,它都会删除前导零。DateTime dt = DateTime.Parse(datetime, Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None)在这里,它给出了输出,5/16/2018但我需要它作为05/16/2018. 那么,我该如何实现这个结果呢?
查看完整描述

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!


查看完整回答
反对 回复 2022-06-12
?
桃花长相依

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


查看完整回答
反对 回复 2022-06-12
?
呼啦一阵风

TA贡献1802条经验 获得超6个赞

"5/16/2018"是字符串表示 od DateTime 值。如果要以前导零输出,可以使用自定义格式:

dt.ToString("dd/MM/yyyy");


查看完整回答
反对 回复 2022-06-12
  • 3 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信