我正在将字符串转换为DateTime,因此我可以将年,月和日分开。
分隔字符串有效但value.Month
和value.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;
}
我想以相同的格式保留日期。
答案 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"
无论如何,在您的代码示例中,您将year
,month
和day
存储到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" )