如何将日期从“dd / mm / yyyy”格式转换为“yyyy / dd / mm”?

时间:2010-12-21 09:56:40

标签: c#

我有一个文本框,用户应该以{{1​​}}格式输入日期,此日期在数据库中存储为dd/mm/yyyy

所以我希望用户以yyyy/mm/dd格式输入日期,之后我想转换为dd/mm/yyyy以便我可以查询数据库。

如何将用户输入日期yyyy/mm/dd转换为dd/mm/yyyy

8 个答案:

答案 0 :(得分:3)

快速而且可能很脏:

string reformattedDate = DateTime.ParseExact(textBox1.Text, "dd/MM/yyyy", null).ToString("yyyy/MM/dd");

当然,这假设文本框的内容将始终采用假定的格式,因此应该在之前检入它们以确保这一点。还有更安全的方式,不需要额外的检查:

DateTime result;
if(DateTime.TryParseExact(textBox1.Text, "dd/MM/yyyy", null, System.Globalization.DateTimeStyles.None, out result)
{
    // Here you can safely use result
    string reformattedDate = result.ToString("yyyy/MM/dd");
} else {
    // Screw the user
}

这将尝试解析文本框的内容并通过out result将其返回给您,如果成功,它将返回true。否则,您可以放心,输入不是假定格式,也不是有效日期。

另请注意,如果转换失败,ParseExact会抛出ArgumentNullExceptionArgumentException

  

我有一个文本框,用户应该以dd / mm / yyyy格式输入日期,此日期在数据库中存储为yyyy / mm / dd。

显而易见的答案是:在使用字符串转换进行摔跤之前使用DateTimePicker和参数化查询。从长远来看,它会为你节省很多头痛。

答案 1 :(得分:0)

如果在数据库中存储日期,则将其存储为日期而不是字符串。那么你将只有一种格式:用户键入的内容。

使用DateTime.Parse(或TryParse,或“Exact”版本),您可以从键入的字符串转换为DateTime值。

答案 2 :(得分:0)

我想看看

DateTime.TryParseExact Method

DateTime.ToString Method dateTimeval.ToString("yyyy/MM/dd");

这样的东西
string dateString = "30/01/2010";
DateTime dateTimeVal;
if (DateTime.TryParseExact(dateString,"dd/MM/yyyy", null,DateTimeStyles.None,out dateTimeVal))
{
    string newFormat = dateTimeVal.ToString("yyyy/MM/dd");
}

答案 3 :(得分:0)

假设您将日期存储在数据库的DateTime字段中,日期实际上并未以dd/mm/yyyy格式存储。

要使用日期:

string formattedDate = dateFromDb.ToString("yyyy/MM/dd");

要转换特定格式的date字符串,您可以使用:

DateTime value;

if (DateTime.TryParseExact(
  date,
  "dd/MM/yyyy", 
  new CultureInfo("en-GB"),
  System.Globalization.DateTimeStyles.None,
  out value))
{
  Console.Write(value.ToString("yyyy/MM/dd"));
}
else
{
  Console.Write("Date parse failed!");
}

答案 4 :(得分:0)

  

此日期存储为yyyy / mm / dd in   数据库

我希望这不是真的。我希望您将日期存储为数据库中的datetime值,而不是varchar值。

如果将日期存储为datetime值,则将日期字符串从一种格式转换为另一种格式没有意义,您应该将字符串解析为DateTime值。

使用ParseExact方法解析特定格式的字符串:

DateTime date = DateTime.ParseExact(theDateTextbox.Text, "dd'/'MM'/'yyyy", CultureInfo.InvariantCulture);

答案 5 :(得分:0)

以下是将DateTime转换为字符串的方法:

dateTime.ToString("dddd, dd MMMM yyyy");

Here are the different format of ToString

但我觉得最好使用DateTimePicker,你肯定有一个日期,用户可以用键盘输入日期。

答案 6 :(得分:0)

string input = "20/12/2010"; // dd/mm/yyyy
DateTime d;
if (DateTime.TryParseExact(input, "dd/mm/yyyy", System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None, out d))
{
    string result = d.ToString("yyyy/mm/dd");
}

答案 7 :(得分:0)

试试这个。

 string dt = DateTime.Parse(txtDate.Text.Trim()).ToString("yyyy/MM/dd", CultureInfo.InvariantCulture);