【问题标题】:how can get the date in this format "31-jun-2013"如何以这种格式“31-jun-2013”​​获取日期
【发布时间】:2013-08-16 05:27:45
【问题描述】:

我怎样才能得到这种格式的日期“2013 年 6 月 30 日”

在运行时,如果用户在文本框中输入上述格式..它将获取指定日期的匹配数据行并过滤并显示在 datagridview 中

因此,我想将日期格式与文本框中输入的文本进行比较

string todaydate = Convert.ToString(DateTime.Today);

DateTime DTM = Convert.ToDateTime(todaydate);

string datetoday = DTM.ToString("dd-MMM-yyyy");

if (TypeHereTextBox.Text == datetoday)

{
    OLCMND2 = new OracleCommand("Select * from TABLENAME where DATE = '" +              typeHereTextBox.Text + "'", CON);

    OADAP1 = new OracleDataAdapter(OLCMND2);
    OADAP1.Fill(DTBLE2);

    DatagridView.DataSource = DTBLE2;
}

如何解决

【问题讨论】:

标签: c# date format


【解决方案1】:

你好,伙计们,我找到了解决方案

string[] arrayData = TextBox.Text.Split('-');

if (arrayData.Length == 3)

OLCMND2 = new OracleCommand("Select VISITORCOUNT,REMARKS,to_date(to_char(TODAYDATE, 'DD-MON-YYYY'),'DD-MON-YYYY') AS TODAYDATE,CARDNUMBER,PHOTO from VMS_VISITOR where TODAYDATE = TO_DATE('" + TypeHereTextBox.Text + "','dd-MON-yyyy')", CON);

OADAP1 = new OracleDataAdapter(OLCMND2);
OADAP1.Fill(DTBLE2);

DatagridView.DataSource = DTBLE2;

感谢大家的回复

【讨论】:

    【解决方案2】:

    首先你在做字符串比较,这意味着你比较引用。请使用

    if (TypeHereTextBox.Text.Equals(datetoday))
    

    改为。

    其次,为什么不比较 dateTime 而不是字符串? 因为您的数据无论如何都不是有效日期,所以您不能使用ParseExactTryParseExact,但是您可以使用任何有效日期:

    DateTime d;
    DateTime.TryParseExact(date, "dd-MMM-yyyy", System.Globalization.CultureInfo.InvariantCulture,
                                    System.Globalization.DateTimeStyles.NoCurrentDateDefault, out d);
    
    if (d== DTM)
    

    【讨论】:

      【解决方案3】:

      我不会将日期作为字符串进行比较,首先使用DateTime.ParseExact 通过给出日期时间格式字符串将字符串转换为日期时间。然后比较两个日期时间对象而不是字符串比较。

      我也会使用参数来设置日期列值,如下所示

      OLCMND2 = new OracleCommand("Select * from TABLENAME where DATE = :dateVal", CON);
      OLCMND2.Parameters.Add("dateVal", OracleDbType.Date
           , myDatetime, System.Data.ParameterDirection.Input);
      

      【讨论】:

        【解决方案4】:

        最好的方法是使用今天的日期分别检查日期月份和年份。如果匹配,则以您想要的格式连接日期月份和年份并传递给查询。

        【讨论】:

          【解决方案5】:

          这将从该格式解析:

          var dateToParse = "30-Jun-2013"; //TypeHereTextBox.Text
          var parsedDate = DateTime.ParseExact(dateToParse, "dd-MMM-yyyy", CultureInfo.InvariantCulture);
          
          if (parsedDate.Date == datetoday.Date)
          {
              // Do stuff
          

          注意 - 六月只有 30 天 ;)

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 2017-05-13
            • 1970-01-01
            • 2016-05-29
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2012-10-22
            相关资源
            最近更新 更多