【问题标题】:Format a date time string from YYYY/MM/DD to MM/DD/YYYY with no time将日期时间字符串从 YYYY/MM/DD 格式化为没有时间的 MM/DD/YYYY
【发布时间】:2017-03-08 23:48:58
【问题描述】:

我需要花点时间保存这样的字符串:“2016-12-26”并将其转换为“12/26/2016”,所以从 yyyy-mm-dd 到 mm/dd/yyyy 我是在下面这样做,但是我也有时间,我只需要日期。

我正在使用的代码:

  var parseBooking = DateTime.ParseExact(bookingStartDate.Replace("-", string.Empty), "yyyyMMdd", System.Globalization.CultureInfo.InvariantCulture);

【问题讨论】:

  • 使用DateTime 对象的Date 属性
  • “存储”是什么意思?它是在数据库的字段中(如果是,该字段的类型是什么),还是在某种文本文件中?
  • @Gilad 我不确定我是否理解。我没有看到日期属性。
  • @NicolePhillips parseBooking.Date
  • DateTime.Parse("2016-12-26").ToString("MM/dd/yyyy");应该返回你想要的。你不需要 ParseExact。

标签: c# date parsing


【解决方案1】:

将 bookingStartDate 转换为 DateTime 对象,然后在日期时间上使用 String.Format:

DateTime dt = DateTime.ParseExact(bookingStartDate , "yyyy-MM-dd", System.Globalization.CultureInfo.InvariantCulture);
var parseBooking = String.Format("{0:MM/dd/yyyy}", dt)

如果不是从您的字符串创建 DateTime 对象,然后执行上述操作。

【讨论】:

  • 那么这是否意味着我需要解析出年份、月份日期以匹配对象的格式?因为新对象想要接受 int 值,这些是字符串。
  • 你可以做 DateTime dt = Convert.ToDateTime(bookingStartDate);创建一个日期。如果需要,如果 Date 格式不适合您,您可以传入 IFormatProvider。
【解决方案2】:

“2016 年 12 月 26 日” ... 至“2016 年 12 月 26 日”

可能是世界上最快的算法:

var a = "2016-12-26";
var b = new string(new[] { a[5], a[6], '/', a[8], a[9], '/', a[0], a[1], a[2], a[3] });

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 2013-10-19
    • 2017-07-20
    • 2021-04-19
    • 1970-01-01
    • 2016-01-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多