【问题标题】:How to convert a date into DD/MM/YYYY/HH:MM:SS如何将日期转换为 DD/MM/YYYY/HH:MM:SS
【发布时间】:2016-10-19 05:06:37
【问题描述】:

我想将日期转换为DD/MM/YYYY/HH:MM:SS 格式。日期由用户给出。

我正在使用下面的代码:

        string fromdate = context.Request.QueryString["fromdate"];
        string todate = context.Request.QueryString["todatedate"];

        DateTime fromDaten = DateTime.MinValue;
        DateTime toDaten = DateTime.MinValue;

        try
        {
            fromDaten = FormatDate(fromdate + " 00:00:00");
            toDaten = FormatDate(todate + " 00:00:00");
        }
        catch (Exception ex) { }

我想将fromdatetodate 转换为DD/MM/YYYY/HH:MM:SS 格式。当我尝试这样做时,我得到01/01/0001/00:00:00

在 FormatDate 我有以下代码:

        try
        {

            string dateTimeString = todate;
            dateTimeString = Regex.Replace(dateTimeString, @"[^\u0000-\u007F]", string.Empty);

            string inputFormat = "yyyy-MM-dd HH:mm:ss";
            string outputFormat = "dd-MM-yyyy HH:mm:ss";
            var dateTime = DateTime.ParseExact(dateTimeString, inputFormat, CultureInfo.InvariantCulture);
            string output = dateTime.ToString(outputFormat);
            return Convert.ToDateTime(output);
        }
        catch (Exception ex)
        {
            throw;
        }

【问题讨论】:

  • context.Request.QueryString["todatedate"]中的值是多少
  • 什么是FormatDate:它似乎将string 转换为DateTime,但您在相反方向转换时格式化日期。
  • var fromdate = $('#datepickerFrom').datepicker({ dateFormat: 'yy-mm-dd' }).val(); var todatedate = $('#datepickerTo').datepicker({ dateFormat: 'yy-mm-dd' }).val();
  • fromDaten=Convert.ToDateTime(fromdate).ToString(“dd/MM/YYYY/HH:mm:ss”)

标签: c# date datetime


【解决方案1】:

您应该使用TryParse/TryParseExact 而不是更昂贵的try/catch,而不是best practice

string fromDate = "2016/10/20/12:13:14";
DateTime fromDaten = DateTime.MinValue;
bool fromParsed = DateTime.TryParseExact(fromDate, "yyyy/MM/dd/HH:mm:ss", 
    new System.Globalization.CultureInfo("en-US"), 
    System.Globalization.DateTimeStyles.None, out fromDaten);

// you may check fromParsed and handle invalid date/time 

我只为fromDate 提供了一个示例。您可以创建一个解析函数来处理所有日期字符串。

【讨论】:

    【解决方案2】:

    尝试关注

    DateTime dt = DateTime.ParseExact(sDate, "MM/dd/yyyy",CultureInfo.InvariantCulture);
    

    让我知道这是否有效..

    【讨论】:

      【解决方案3】:

      试试这个-

              string fromdate = context.Request.QueryString["fromdate"];
              string todate = context.Request.QueryString["todatedate"];
      
              if(!string.IsNullOrEmpty(fromdate)||!string.IsNullOrEmpty(todate)) /* check  query string value */ 
              {             
               DateTime from=Convert.ToDateTime(fromdate);
               DateTime to=Convert.ToDateTime(todate);
               try
               {
                fromDate=from.ToString("dd/MM/YYYY HH:mm:ss");/*Here you get date time in required format */
                toDate = to.ToString("dd/MM/YYYY HH:mm:ss");  
               }
               catch (Exception ex)
               {
               }
           }
      

      【讨论】:

        【解决方案4】:

        那个代码有点乱,试试这个:

            string fromdate = context.Request.QueryString["fromdate"];
            string todate = context.Request.QueryString["todatedate"];
        
            DateTime fromDaten = DateTime.Parse(String.Join("/", fromdate.Split("/".ToCharArray()).Reverse().ToArray()));
            DateTime toDaten = DateTime.Parse(String.Join("/", fromdate.Split("/".ToCharArray()).Reverse().ToArray()));
        

        【讨论】:

        • 当我尝试这样做时
        • 我的 'fromdate' 是 '10/09/2016' 。在“fromDaten”中,我得到了“1/1/0001 12:00:00 AM”
        • 我想要'10/09/2016 12:00:00 AM'
        • @AnupaSankar 10/09/2016 是 2016 年 9 月 10 日还是 2016 年 10 月 9 日?
        • 更新支持反转参数
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-05-01
        • 2019-01-14
        • 2020-03-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多