【问题标题】:Converting dateTime to different format [duplicate]将dateTime转换为不同的格式[重复]
【发布时间】:2020-02-05 02:58:28
【问题描述】:

有一个dateTime,格式为“dd/mm/yyyy hh:mm:ss tt”。需要由此创建string,格式为“yyyyMMddHHmmssfff”。

string timestamp = (dateTimeUTC.Year).ToString() +  (dateTimeUTC.Month).ToString() + (dateTimeUTC.Day).ToString() + (dateTimeUTC.Hour).ToString() + (dateTimeUTC.Minute).ToString() +
                           (dateTimeUTC.Second).ToString() + (dateTimeUTC.Millisecond).ToString();

此代码的问题是,如果月份或日期的任何数字是 0-9,则数字前面没有 0。例如,假设我们有 dateTime 1/26/2020 11:59:53 PM。这必须转换为 20200126235651100。而不是 20201262359530。

【问题讨论】:

  • 某些原因您不能使用string.Format()ToString
  • 基本上每个人的答案都是一样的。
  • 我在阅读该代码后开发了一个 twitch

标签: c# .net datetime


【解决方案1】:

只需使用ToString上的格式

string timestamp = dateTimeUTC.ToString("yyyyMMddHHmmssfff");

【讨论】:

    【解决方案2】:

    Jsut 使用DateTime Format Strings(您的问题中甚至有):

    var x = DateTime.Parse("1/26/2020 11:59:53 PM");    
    var result = x.ToString("yyyyMMddHHmmssfff");
    

    【讨论】:

      【解决方案3】:

      使用所需格式的DateTime.ToString(),点赞

      string timestamp = dateTimeUTC.ToString("yyyyMMddHHmmssfff");
      Console.WriteLine(timestamp);   //2020126235953000
      

      但是根据您的要求,您需要将timestamp 转换为20201262359530,如果您注意到您只需要一位秒小数,所以不要使用fff 三次,请使用以下格式,这将为您提供准确的您的问题中提到的值。

      string timestamp = dateTimeUTC.ToString("yyyyMMddHHmmssf");
      Console.WriteLine(timestamp);   //20201262359530
      

      输入:

      dateTimeUTC: 1/26/2020 11:59:53 PM
      

      输出:

      20201262359530
      

      Try it online

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-08
        • 2012-10-17
        • 2020-11-17
        • 2019-06-24
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多