使用前导零C#将字符串转换为DateTime

Jee*_*mar -2 c# datetime parsing leading-zero

我有一个日期时间格式MM/dd/yyyy:

string datetime = "05/16/2018"
Run Code Online (Sandbox Code Playgroud)

现在,根据要求,我需要将其转换stringDateTime.每当我这样做它删除前导零.

DateTime dt = DateTime.Parse(datetime, Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None)
Run Code Online (Sandbox Code Playgroud)

在这里,它给出输出,5/16/2018但我需要它05/16/2018.那么,我该如何实现这一结果呢?

Swe*_*per 5

您需要了解a DateTime只是表示某个时间点的对象.它不存储有关如何格式化的信息.以下是相同的DateTime,只是采用不同的格式:

05/16/2018
5/16/2018
Run Code Online (Sandbox Code Playgroud)

因为它们代表了相同的时间点.

就像int行为一样.它也会"删除你的前导零":

int a = 05;
Console.WriteLine(a); // just prints "5".
Run Code Online (Sandbox Code Playgroud)

因为05并且5是相同的int,就此int而言.

是否添加前导零DateTime取决于您如何格式化它.它们仅在您将您转换DateTime为字符串时出现.05/16/2018并且5/16/2018是不同string的.

如果你想要前导零,只需指定一个日期格式,就像dd/MM/yyyy你想要输出它一样:

Console.WriteLine(dateTime.toString("dd/MM/yyyy")); // prints leading zeroes!
Run Code Online (Sandbox Code Playgroud)