如何阻止日期删除零

How to stop the date from removing zeros

我正在将一个字符串转换为 DateTime,这样我就可以分隔年、月和日。 分隔字符串有效,但 value.Monthvalue.Day 正在从月份和日期中删除零。所以字符串可能是 04/05/2016 并且它正在转换为 4/5/2016.

如何阻止它删除零?

string date = txtFromDate.Text;
int year = 0;
int month = 0;
int day = 0;
DateTime value;
if (DateTime.TryParse(date, out value))
{
     year = value.Year;
     month = value.Month;
     day = value.Day;
}

我想以相同的格式保留日期。

整数没有前导零。 value.Day returns int 5 而不是字符串“05”,因为日期已成功解析为整数表示形式。

如果要将整数转换回具有指定 个零的字符串,请在打印字符串时使用格式说明符,如下所示:

Console.WriteLine(day.ToString("00")); // prints 5 as 05

DateTime 对象没有关于可应用于其数据的格式的信息;它只代表一个日期。

您可以使用所需格式再次提取字符串:

value.Tostring("M/d/yyyy") //returns "6/15/2008" 
value.Tostring("MM/dd/yyyy") //returns "06/15/2008" 
value.Tostring("dd") //returns "15"

无论如何,在您的代码示例中,您将 yearmonthday 存储到 int 变量中。
Int 也没有关于可应用于他的数据的格式的信息;它只是代表一个数字。

day.ToString("00")); // returns "15"

根据我对你问题的理解,你只需要格式化日期即可。

DateTime value;
string result = "";
if (DateTime.TryParse(txtFromDate.Text, out value))
{
    result = String.Format("{0:MM/dd/yyyy}", value); 
}

您可能希望使用格式化字符串在 ToString 中处理此问题。

// Output: 04/05/2016
DateTime.Now.ToString( "MM/dd/yyyy" )

Here is a formatting guide document from MSDN