使用新格式将String转换为DateTime

时间:2017-11-13 19:17:20

标签: c# datetime

如何将13.11.2017之类的字符串转换为具有该格式的DateTime 13/11/2017

我尝试了几种方法,但我没有得到解决方案。

string Arrival = Request.QueryString["Arrival"];//13.11.2017
DateTime datee = DateTime.ParseExact(Arrival , "dd/MM/yyyy", null);

这里是更新的代码我拆分字符串:

            string Arrival = Request.QueryString["Arrival"];//13.11.2017
      string year = Arrival.Split('.')[2];
                   string month = Arrival.Split('.')[1];
                        string day = Arrival.Split('.')[0];
                        string date = day + "/" + month + "/" + year;
                        DateTime datee = DateTime.ParseExact(date, "dd/MM/yyyy", null);

3 个答案:

答案 0 :(得分:1)

观察:

// the input string
string inputString = "13.11.2017";

// parse the input string with a specific format to create a DateTime
DateTime dt = DateTime.ParseExact(inputString, "dd.MM.yyyy", CultureInfo.InvariantCulture);

// create a string from the DateTime using a different specific format
string outputString = dt.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

// output the string
Console.WriteLine(outputString);  // "13/11/2017"

请注意,DateTime本身没有任何特定格式。格式仅在进入或来自字符串时才起作用。

另请注意,通过使用此处的不变文化,如果当前文化是使用不同日期分隔符或不同日历系统的文化,我们将避免可能出现的任何问题。

答案 1 :(得分:0)

与俄语语言环境有同样的问题。 目前在任何地方都使用ISO格式以避免不正确的DateTime理解(比如MM.dd,当你的意思是dd.MM)。

public static string ToIsoStr(this DateTime dateTime)
    {
        return dateTime.ToString("yyyy-MM-dd", CultureInfo.InvariantCulture);
    }

您的任务将通过

解决
return dateTime.ToString("dd/MM/yyyy", CultureInfo.InvariantCulture);

答案 2 :(得分:0)

using System.Text.RegularExpressions;

string Arrival = Request.QueryString["Arrival"]; // 13.11.2017
string dateString = Regex.Replace(Arrival, @"\.", "/"); // 13/11/2017
DateTime date = DateTime.ParseExact(dateString , "dd/MM/yyyy", null); // 11/13/2017 00:00:00