【问题标题】:Get PM or AM from string date C# [duplicate]从字符串日期C#获取PM或AM [重复]
【发布时间】:2018-08-10 16:58:29
【问题描述】:

我将此字符串作为日期,我想将 AM/PM 添加到末尾。

从 10-17-2018 00:00:00

到 2018 年 10 月 17 日上午 00:00:00

怎么可能? 非常感谢!

【问题讨论】:

  • 你试过什么?什么具体不起作用?
  • 字符串从何而来?它最初来自DateTime 实例吗?如果是这样,那将是添加格式以输出 AM/PM 的地方。你有一个 DateTime 开头吗,这不是一个字符串吗?如果是这样,那么在它到达表示层之前不要担心它。 00:00:00 呢?总是在这个时候吗?在那种情况下,为什么还要打扰 AM/PM 或尝试添加逻辑来弄清楚要添加什么?
  • 同时删除 vb.netc# 标记,我怀疑你是否想要两个答案。

标签: c# .net vb.net date


【解决方案1】:

所以将字符串日期转换成真正的日期时间,然后 ToString() 以你喜欢的格式返回:

var dateStr = "10-17-2018 00:00:00";
var date = DateTime.Parse(dateStr);
Console.WriteLine(date.ToString("MM-dd-yyyy HH:mm:ss tt"));

输出:10-17-2018 00:00:00 AM

日期时间格式:http://www.csharp-examples.net/string-format-datetime/

【讨论】:

  • 为什么这比在字符串中添加“AM”或“PM”更好? OP 似乎表明他们有一个源字符串,如果 OP 有一个 DateTime 实例,那么修改它并调用 .ToString() 是显而易见的方法,但 OP 提供了零细节。
  • 我猜 OP 的第一个日期是来自他们无法控制的字符串,在这种情况下,他们不知道添加哪个“AM”或“PM”是正确的。跨度>
  • @maccettura - 我认为这个问题本身在这方面有点不清楚。我没有看到任何迹象表明 OP 已经有DateTime,所以这是一个相当“安全”的答案 IMO。
  • 如果 OP 确实有它作为开始的日期,那么我的代码块中的最后一行显示如何通过“tt”格式字符串获取 AM/PM。
  • @BrootsWaymb 这就是为什么最好不要回答细节为零的问题。标题说“获取 PM 或 AM”,但正文询问如何连接字符串。我们不知道 OP 想要什么,所以问题应该在合适之前关闭。
猜你喜欢
  • 1970-01-01
  • 2017-12-11
  • 2011-03-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多