如何将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);
答案 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