首页 文章

在c#中将日期格式从mm-dd-yyyy转换为dd-mmm-yyyy

提问于
浏览
0

我正在尝试将asp.net表单字段值插入到oracle数据库表中 . 我有一个日期字段,格式为“MM-DD-YYYY” . 我需要将该日期添加到oracle表 . 所以我试图将该日期格式转换为“DD-MMM-YYYY”格式 . 但我收到以下错误 .

码:

var creation_date = DateTime.ParseExact(CreationDateTextBox.Text, "DD-MMM-YYYY",null);

文本框值是:12-12-2013 . (没时间)我收到错误,如“字符串未被识别为有效的DateTime” .

5 回答

  • 1

    这可能有帮助:)

    String myString = "12-30-2014"; // get value from text field
    DateTime myDateTime = new DateTime();
    myDateTime = DateTime.ParseExact(myString, "MM-dd-yyyy",null);
    String myString_new = myDateTime.ToString("dd-MM-yyyy"); // add myString_new to oracle
    
  • 8

    您需要使用 MM-dd-yyyy 解析日期,但您根本不需要格式化它 . 只需使用参数化SQL将其作为 DateTime 传递给数据库 .

    DateTime creationDate;
    if (DateTime.TryParseExact(CreationDateTextBox.Text, "MM-dd-yyyy",
                               CultureInfo.InvariantCulture, DateTimeStyles.None,
                               out creationDate))
    {
        // Use creationDate within a database command, but *don't* convert it
        // back to a string.
    }
    else
    {
        // Handle invalid input
    }
    

    尽可能避免字符串转换 . 实际上,理想情况下使用某些描述的日期/时间选择器而不仅仅是文本字段 - 这将为用户提供更好的体验并降低转换不良的风险 .

    另请注意,只要您想使用自定义字符串转换(解析或格式化),您应该阅读MSDN docs - YYYYDD 是无效的格式说明符 .

  • 1

    试试这个

    DateTime dt = Convert.ToDateTime(CreationDateTextBox.Text);
    var creation_date=String.Format("{0:dd-MMM-yyyy}", dt)
    

    或尝试

    dt.ToString("dd MMM yyyy");
    
  • 3

    本月有三个M,用于月份名称 . 只需使用两个M.

  • 3
    private DateTime ConvertToDateTime(string strDateTime)
        {
            DateTime dtFinaldate; string sDateTime;
            try { dtFinaldate = Convert.ToDateTime(strDateTime); }
            catch (Exception e)
            {
                string[] sDate = strDateTime.Split('/');
                sDateTime = sDate[1] + '/' + sDate[0] + '/' + sDate[2];
                dtFinaldate = Convert.ToDateTime(sDateTime);
            }
            return dtFinaldate;
        }
    

相关问题