如何停止删除零的日期

时间:2016-04-05 16:15:51

标签: c# asp.net datetime tryparse

我正在将字符串转换为DateTime,因此我可以将年,月和日分开。 分隔字符串有效但value.Monthvalue.Day正在删除月和日的零。因此字符串可能是2016年5月4日,它将转换为2016年4月5日。

如何阻止它删除零?

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;
}

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

4 个答案:

答案 0 :(得分:3)

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

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

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

答案 1 :(得分:2)

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"

答案 2 :(得分:2)

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

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

答案 3 :(得分:1)

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

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

Here is a formatting guide document from MSDN