将字符串转换为带前导零的 DateTime C#
Convert String to DateTime with Leading Zero C#
我有一个格式为 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
。那么,如何实现这个结果呢?
"5/16/2018"
是字符串表示 od DateTime 值。
如果你想输出前导零,你可以使用自定义格式:
dt.ToString("dd/MM/yyyy");
首先,您的字符串 DateTime
格式 (MM/dd/yyyy
) 令人困惑!它会为字符串数据时间值(如 "05/08/2018"
)提供误导性值。所以你必须使用 ParseExact
而不是 Parse
如下:
DateTime dt = DateTime.ParseExact(datetime,"MM/dd/yyyy", CultureInfo.InvariantCulture);
It gives output as 5/16/2018 but I need it as 05/16/2018. So, how do I achieve this result?
您只需将您的机器 DateTime
格式更改为前导零 DataTime
格式即可实现此目的!因为默认情况下 C# DateTime
采用机器 Datatime
格式的格式。
好吧,我还检查了一个测试控制台应用程序,以确认如果您的机器 DateTime
格式包含,您转换的 DateTime
可以包含前导零而不将其转换为字符串前导零。
您需要了解 DateTime
只是一个表示时间点的对象。它不存储有关其格式化方式的信息。以下是相同的DateTime
,只是格式不同:
05/16/2018
5/16/2018
因为它们代表同一时间点。
这就像 int
的行为方式。它也会 "remove your leading zeros":
int a = 05;
Console.WriteLine(a); // just prints "5".
因为05
和5
是一样的int
,就int
而言
是否在 DateTime
中添加前导零取决于您如何格式化它。它们仅在您将 DateTime
转换为字符串时出现。 05/16/2018
和 5/16/2018
是不同的 string
s.
如果你想要前导零,只要在你想输出的时候指定一个日期格式,比如dd/MM/yyyy
:
Console.WriteLine(dateTime.toString("dd/MM/yyyy")); // prints leading zeroes!
我有一个格式为 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
。那么,如何实现这个结果呢?
"5/16/2018"
是字符串表示 od DateTime 值。
如果你想输出前导零,你可以使用自定义格式:
dt.ToString("dd/MM/yyyy");
首先,您的字符串 DateTime
格式 (MM/dd/yyyy
) 令人困惑!它会为字符串数据时间值(如 "05/08/2018"
)提供误导性值。所以你必须使用 ParseExact
而不是 Parse
如下:
DateTime dt = DateTime.ParseExact(datetime,"MM/dd/yyyy", CultureInfo.InvariantCulture);
It gives output as 5/16/2018 but I need it as 05/16/2018. So, how do I achieve this result?
您只需将您的机器 DateTime
格式更改为前导零 DataTime
格式即可实现此目的!因为默认情况下 C# DateTime
采用机器 Datatime
格式的格式。
好吧,我还检查了一个测试控制台应用程序,以确认如果您的机器 DateTime
格式包含,您转换的 DateTime
可以包含前导零而不将其转换为字符串前导零。
您需要了解 DateTime
只是一个表示时间点的对象。它不存储有关其格式化方式的信息。以下是相同的DateTime
,只是格式不同:
05/16/2018
5/16/2018
因为它们代表同一时间点。
这就像 int
的行为方式。它也会 "remove your leading zeros":
int a = 05;
Console.WriteLine(a); // just prints "5".
因为05
和5
是一样的int
,就int
而言
是否在 DateTime
中添加前导零取决于您如何格式化它。它们仅在您将 DateTime
转换为字符串时出现。 05/16/2018
和 5/16/2018
是不同的 string
s.
如果你想要前导零,只要在你想输出的时候指定一个日期格式,比如dd/MM/yyyy
:
Console.WriteLine(dateTime.toString("dd/MM/yyyy")); // prints leading zeroes!