将字符串解析为DateTime格式

时间:2017-02-10 10:54:28

标签: c# visual-studio datetime calendar

我遇到了问题,我无法以正确的格式将我的字符串解析为DateTime。 我尝试了很多不同的方法,并在几个网站上搜索,但我找不到解决问题的方法

string vonDatum = dtpVon.Value.ToString("dd.MM.yyyy");
        DateTime startDatum = DateTime.ParseExact(vonDatum, "dd.MM.yyyy", null);
        String bisDatum = dptBis.Value.ToString("dd.MM.yyyy");
        DateTime endDatum = DateTime.ParseExact(bisDatum, "dd.MM.yyyy", null);

如您所见,我想以dd.MM.yyyy的形式解析。但我得到的东西就像dd.MM.yyyy.ss.fff(不确定ss.fff,但我也得到秒和毫秒)。

非常感谢有人可以帮助我

2 个答案:

答案 0 :(得分:0)

将datetime解析为特定的字符串格式或将其转换为特定的文化通常会抛出异常。您可以使用以下代码获取此格式dd.MM.yyyy

DateTime dateString = DateTime.Now;

string day = dateString.Day.ToString();
string month = dateString.Month.ToString();
string year = dateString.Year.ToString();

string date = day + "." + month + "." + year;
Console.WriteLine(date);

输出:10.2.2017

答案 1 :(得分:0)

我刚自己发现了它。 如果有人遇到同样的问题,请按照以下方法处理。

 string datum = String.Format("{0:dd/MM/yyyy}", date);

例如,我在这种情况下使用它。

string vonDatum = dtpVon.Value.ToString("dd.MM.yyyy");
        DateTime startDatum = DateTime.ParseExact(vonDatum, "dd.MM.yyyy", null);

        string bisDatum = dptBis.Value.ToString("dd.MM.yyyy");
        DateTime endDatum = DateTime.ParseExact(bisDatum, "dd.MM.yyyy", null);

 for (DateTime date = startDatum; date <= endDatum; date = date.AddDays(1))
            {
                string datum = String.Format("{0:dd/MM/yyyy}", date);
                // Erste tabellenbefüllung erstellen 
                sqlite_cmd.CommandText = "INSERT INTO einteilung (mitarbeiter, arbeitsschicht, datum) VALUES ('"+mitarbeiter+"', '"+arbeitsschicht+"', '"+datum +"');";
                sqlite_cmd.ExecuteNonQuery();
            }