【问题标题】:Unable to convert String to Date Time [duplicate]无法将字符串转换为日期时间 [重复]
【发布时间】:2019-10-21 15:58:51
【问题描述】:

如何将字符串转换为日期时间?我得到“2019-06-07T02”作为字符串。我想将字符串格式化为日期,如下例所示

例如:2019-06-07T02 -- 2019 年 1 月 7 日星期五凌晨 2:00

例如:2019-06-07T14 --- 2019 年 1 月 7 日星期五下午 2:00

【问题讨论】:

  • 显示。代码。请。至少展示你迄今为止的研究。
  • 你有两个问题。问题 1 - 如何将 ParseExact string 转换为 datetime。问题 2 - 如何将 ToStringdatetime 变为 string
  • 为什么对我的问题投反对票。有什么问题吗,请。让我知道会有所改善。但我看到已经有 2 人回答了,并且还为答案投票。
  • @PavanKumarGVVS - 否决票的原因是这种问题在 SO 上一次又一次地被问到。当您提出问题时,系统会提示您有许多重复项 - 并且它们应该足以让您在发布之前回答您自己的问题。 SO 尝试消除所有重复项。

标签: c# .net date datetime


【解决方案1】:
var str = "2019-06-07T02";
var dt = DateTime.ParseExact(str, "yyyy-MM-ddThh", CultureInfo.InvariantCulture);

var longstr = dt.ToLongDateString() + dt.ToLongTimeString();

请注意ToLongDateStringToLongTimeString 取决于Windows 用户区域设置

the documentation

【讨论】:

    【解决方案2】:
    var input = "2019-06-07T14";
    var datetime = DateTime.ParseExact(input, "yyyy-MM-dd'T'HH", CultureInfo.InvariantCulture);
    var output = datetime.ToString("dddd MMMM dd, yyyy h':'mm tt");
    

    这正是您需要的。 (来源Docs

    编辑:我知道这可能太手动了,但如果你想配置更多,这样你可以,如果不是,请使用 oleksa 的答案。

    【讨论】: