如何在.NET中将字符串转换为日期

时间:2010-12-09 23:44:13

标签: vb.net

我遵循vb.net convert string to date的建议。但是,它没有用。

代码如下:

    Dim Dt As DateTime
    If DateTime.TryParse("Thu, 09 Dec 2010 16:03:24 EST", Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, Dt) Then
        MessageBox.Show(Dt)
    End If

任何人都可以为我解决这个问题吗?我需要以“yyyy-mm-dd hh24-mi-ss”的格式填充日期。

4 个答案:

答案 0 :(得分:0)

注意:此答案是针对问题的上一版本编写的,其中包含以下代码:

Dim Dt As DateTime
If DateTime.TryParseExact("Thu, 09 Dec 2010 16:03:24 EST", "dd.MM.yyyy", Globalization.CultureInfo.InvariantCulture, Globalization.DateTimeStyles.None, Dt) Then
    MessageBox.Show(Dt)
End If

TryParseExact采用的格式字符串,因为它的第二个参数指定了作为第一个参数传递的字符串中日期的格式。

在您的情况下,格式字符串指定日期的格式为“09.12.2010” - 例如日期,蛾和年。但是,由于字符串不是那种格式,因此它不会解析。如果您刚刚使用ParseExact,则会引发异常。

TryParseExact变体MSDN page采用可能的格式字符串数组有更多示例,但不完全匹配您的格式,但使用用于转换{{1}的格式字符串} DateTime你可能想要这样的东西:

string

但我找不到你需要的东西而不是“???”将“时区作为字符串”匹配。在调用"ddd, dd MMM yyyy HH:mm:ss ???" TryParse之前,您可能必须执行一些字符串操作才能将其删除。

答案 1 :(得分:0)

这应该让你走上正确的道路:

    Dim dt As DateTime
    dt = Now
    TextBox1.Text = Format(dt, "yyyy-MM-dd HH:mm:ss")

答案 2 :(得分:0)

您必须使用时区偏移替换时区。 与Parse DateTime with time zone of form PST/CEST/UTC/etc

相同的问题

答案 3 :(得分:0)

    TextBox1.Text = System.DateTime.Now.AddMinutes(698).ToString("dd/MM/yyyy");

    DateTime DOB;
    string[] formatsDOB = { "dd/MM/yyyy", "MM/dd/yyyy" };
    DateTime.TryParseExact(txtDateofBirth.Text, formatsDOB, CultureInfo.CurrentCulture, DateTimeStyles.None, out DOB);