将日期格式从dd/MM/yyyy更改为MM/dd/yyyy

3
我有一个日期选择器,它以dd/MM/yyyy的格式显示日期(我知道可以在那里更改,但我的客户希望保留这种方式),而数据库中的格式是MM/dd/yyyy,所以我想要按照这种方式进行转换。
例如,在文本框中输入23/09/2010,在C#中将其转换为mm/dd/yyyy(txtbo1.text)。
谢谢。 Indranil。
4个回答

11

如果你在数据库中实际上将日期存储为字符串,你可以按照以下方式转换字符串格式:

DateTime.ParseExact(dateTimeString, "dd/MM/yyyy", null).ToString("MM/dd/yyyy")

所以@David M的解决方案更好。可以按照我说的那样进行解析,但您不需要将DateTime作为不同的字符串(无需执行ToString())。 - brickner
DateTime dateTime = DateTime.ParseExact(dateTimeString, "dd/MM/yyyy", null);现在您需要将该dateTime作为SQL命令的参数。如果您想直接在SQL字符串中编写它,您可能仍然需要执行dateTime.ToString("MM/dd/yyyy")。 - brickner

8

如果您在数据库中存储日期,应该使用适当的数据类型存储它们。格式不应该成为问题。您应该将dd/MM/yyyy文本解析为DateTime变量,并将其作为日期/时间类型的参数传递给数据库。


1
使用正则表达式:
    public static String DMYToMDY(String input)
    {
        return Regex.Replace(input,
        @"\b(?<day>\d{1,2})/(?<month>\d{1,2})/(?<year>\d{2,4})\b",
        "${month}/${day}/${year}");
    }

1
 using System.Globalization;

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

也可以用这个来完成。
 public string FormatPostingDate(string str)
 {
     if (str != null && str != string.Empty)
     {
         DateTime postingDate = Convert.ToDateTime(str);
         return string.Format("{0:MM/dd/yyyy}", postingDate);
     }
     return string.Empty;
 }

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接