【问题标题】:string to Date Conversion Vb.Net字符串到日期转换 Vb.Net
【发布时间】:2014-06-09 18:53:56
【问题描述】:

非常愚蠢的事情,但需要在 VB.net 中实现。我试图在 VB.Net VS2008 .Net Framework 3.5 中做到这一点

Dim str As String = "25/05/2014"
Dim dt As Date
dt = DateTime.ParseExact(str, "dd/MM/yyyy", CultureInfo.InvariantCulture) 
Console.WriteLine(dt)

我得到的输出是

25-05-2014 00:00:00

有什么想法吗?

【问题讨论】:

  • 好吧,据我所知,它正在正确解析您的日期......然后您只需使用默认的ToString 实现将其转换回字符串。您有什么期望,为什么?
  • 我想得到完全一样的 dd/MM/yyyy 格式,也没有时间。格式应该是 'dd/MM/yyyy' 而不是 'dd-MM-yyyy hh:mm:ss'
  • 那你需要这样格式化。 DateTime 值没有格式的概念,就像从十六进制解析发生的整数记住...

标签: vb.net .net-3.5 datetime-format


【解决方案1】:

这与转换无关,没关系。当日期写入控制台时,它会被格式化(即转换为字符串),默认格式恰好包含时间部分。

打印时指定所需的格式:

Console.WriteLine("{0:dd/MM/yyyy}", dt)

Console.WriteLine(dt.ToString("dd/MM/yyyy"))

注意:Date 结构(与DateTime 结构相同)以格式中立的方式存储日期和时间,即您不能格式化Date 结构。但是,当您将其输出给用户时,必须将日期转换为人类可读的形式,即必须将其转换为字符串。每当您将一些二进制数据(数字、日期/时间等)转换为字符串时,格式将决定结果的外观。

【讨论】:

    【解决方案2】:

    如果您赶时间,这是获取所需数据的简单方法:

        Dim sFormatted As String = dt.Day.ToString() & "/" & dt.Month.ToString() & "/" & dt.Year.ToString()
        MessageBox.Show(sFormatted)
    

    【讨论】:

    • VB中的字符串连接运算符是&,而不是+
    • 您可能希望避免使用 MsgBox 等遗留功能。请改用 Messagebox.Show()。
    • 这对我有用....但是仅仅通过使用格式不应该是任何简单的方法来实现这一点?
    • @user1841927 另一个答案解释了它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多