【问题标题】:Compare dates in the following format: Wednesday 20 August 2012 10:14按以下格式比较日期:2012 年 8 月 20 日星期三 10:14
【发布时间】:2012-08-17 18:13:47
【问题描述】:

我正在尝试查看当前日期是否是日期变量的新日期。但是,日期变量来自用户可以编辑的 XMLFile,并且必须以该格式编写,以便他们更容易阅读等。我拥有的格式是: 2012 年 8 月 22 日星期三 10:14 = ("dddd d MMMM yyyy HH:mm")

如何将其转换回日期格式,以便与当前日期进行比较

或者

我可以用这种格式比较两个日期吗?

【问题讨论】:

  • 吹毛求疵:日期不正确。应该是 8 月 22 日,或者星期一……

标签: vb.net date datetime format


【解决方案1】:

转换为日期:

Dim theDate = DateTime.ParseExact("Wednesday 22 August 2012 10:14",
                                  "dddd d MMMM yyyy HH:mm",
                                  Globalization.CultureInfo.InvariantCulture)

格式化为字符串:

Dim dateString = theDate.ToString("dddd d MMMM yyyy HH:mm")

【讨论】:

  • 我将使用什么字符串格式将其转换为计算机将使用的默认 DateTime 格式?
  • @TeamGB - 只需使用ToString() 即可获得默认值。我将为用户使用当前的文化设置。
  • 我用过这个,因为变量有时会改变: Dim theDate = DateTime.ParseExact(dateToRun, "dddd d MMMM yyyy HH:mm", Globalization.CultureInfo.InvariantCulture) 但是它告诉我那天本周不正确
  • 抱歉排序了,是因为我的问题上报告的问题,当天的日期不正确。非常感谢
【解决方案2】:

因为你有一个代表你的日期的字符串,你必须“解析”它。

Dim enus = Globalization.CultureInfo.CreateSpecificCulture("en-US")
Dim d As Date = Date.ParseExact("Wednesday 22 August 2012 10:14", "dddd d MMMM yyyy HH:mm", enus)

现在您有了一个可以与任何其他日期进行比较的“日期”。

【讨论】:

  • 收到此错误:字符串未被识别为有效的日期时间,因为星期几不正确。
  • @TeamGB - 可能是因为在您发布的代码中它是20 Aug 而不是@Oded 指出的22 Aug
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-09-08
  • 1970-01-01
  • 1970-01-01
  • 2019-06-15
  • 2013-10-25
  • 2012-03-21
  • 2016-10-05
相关资源
最近更新 更多