【问题标题】:Parse Date Time [duplicate]解析日期时间 [重复]
【发布时间】:2014-04-14 12:32:24
【问题描述】:

以下是我从 API 获得的日期时间格式。

2014 年 4 月 14 日星期一 03:31:15 +0000

如何将其转换为dd-MMM-yyyy HH:mm:ss 格式。

我尝试了以下代码:

Dim strDate as String = "Mon Apr 14 03:31:15 +0000 2014"
Dim dateT as DateTime = DateTime.Parse(strDate)

我遇到以下问题:

DateTime.Parse(strDate) {"字符串未被识别为有效的日期时间。"}

感谢任何解决方案和建议。

【问题讨论】:

  • 尝试使用ParseExact
  • 您的日期时间中的“+0000”是什么?
  • 如果您想伤害以该格式输出日期的任何人,请成为我的客人,事实上,请随意对我的小事进行额外的打击。

标签: vb.net datetime datetime-format


【解决方案1】:

您可以像这样使用 DateTime.ParseExact:

string str = "Mon Apr 14 03:31:15 +0000 2014";
DateTime dt = DateTime.ParseExact(str, 
                           "ddd MMM dd HH:mm:ss zzz yyyy", 
                           CultureInfo.InvariantCulture);

欲了解更多信息,请参阅:Custom Date and Time Format Strings

要将解析的日期转换为您所需的格式,请执行以下操作:

string formattedOutput = dt.ToString("dd-MMM-yyyy HH:mm:ss", CultureInfo.InvariantCulture);

VB 等效项是:

Dim dt As DateTime = DateTime.ParseExact(str,
                           "ddd MMM dd HH:mm:ss zzz yyyy",
                          System.Globalization.CultureInfo.InvariantCulture)
Dim formattedOutput As String = dt.ToString("dd-MMM-yyyy HH:mm:ss", System.Globalization.CultureInfo.InvariantCulture)

【讨论】:

  • +0000 是时间偏移量,可以解析为zzz,所以应该是"ddd MMM dd HH:mm:ss zzz yyyy"
  • @KonradKokosa,感谢您提供的重要信息,这对我来说是新事物。
【解决方案2】:

字符串日期 = (Convert.ToDateTime(control.Text)).ToString("dd/mm/yyyy")

字符串日期 = (Convert.ToDateTime(control.Text)).ToShortDateString();

您也可以使用文化进行研究,例如

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="lab.aspx.cs" Inherits="lab"   MasterPageFile="~/Master.master"      Culture="en-CA" UICulture="en-CA" %>

【讨论】:

  • 您确定那些ToDateTime 将使用 OP 接收的指定格式吗?
猜你喜欢
  • 1970-01-01
  • 2020-06-26
  • 2011-09-28
  • 2016-06-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-01-29
  • 1970-01-01
相关资源
最近更新 更多