0

当我从数据库中获取信息时,我无法格式化 Date 类型的信息。

我在用着:

while (sqlReader.Read())
{
    var payment = new Payment
    {
        Id = Convert.ToInt32(sqlReader["Id"]),
        Amount = Convert.ToDecimal(sqlReader["Amount"]),
        StartDay = Convert.ToDateTime(sqlReader["StartDay"]), //I want this to get this format dd.MM.yyyy
        EndDay = Convert.ToDateTime(sqlReader["EndDay"]) //I want this to get this format dd.MM.yyyy
    };

    Payments.Add(payment);
}

我尝试了我的扩展方法:.ToShortDate(),尝试过DateTime.ParseExact,我不断得到这个:String was not recognized as a valid DateTime.

4

4 回答 4

1

尝试使用上面的示例,为了工作必须将 StartDay,EndDay 的数据类型从DateTime更改为string

 StartDay = sqlReader["StartDay"] != null ? Convert.ToDateTime(sqlReader["StartDay"]).ToString("dd.MM.yyyy") : new Date(DateTime.Now.Year,01,01);
于 2013-06-19T08:18:34.600 回答
0

使用DateTime.Parse()以文化格式传递:

StartDay = DateTime.Parse("2013/06/19", new CultureInfo("en-GB", false));

给出一个日期:

19/06/2013 00:00:00

如果需要,您可以通过调用它来删除小时/分钟/秒.ToShortDateString()

实际上,您应该能够正常从数据库中获取日期,然后通过调用.ToString("dd/MM/yyyy");它来控制它在前端的输出方式。

Response.Write(StartDate.ToString("dd/MM/yyyy"));
于 2013-06-19T08:51:46.690 回答
0

Oracle.DataAccess 示例:

DateTime value=default(DateTime);
if (!reader.IsDBNull(1))
     value= reader.GetDateTime(1);  

1- 列数

于 2013-06-19T08:33:48.297 回答
0

尝试使用 DateTime.ParseExactDateTime.TryParseExact

于 2013-06-19T08:18:55.893 回答