0

我正在尝试以这种格式获取日期

“yyyy MM dd”

它们之间的空格不是斜线,但它不起作用

   using (SqlDataReader r = sqlComm.ExecuteReader())
    {
          if (r.Read())
          {
              DateTime Date 
= Convert.ToDateTime((r["Date"]).ToString("yyyy/MM/dd"));

我根本无法对 SQL 存储过程进行任何更改

编辑

抱歉,它给了我这个“25 10 2012 10:00:00:00 AM”或其他东西,所以我不认为我做得对,我只想要这样的日期“yyyy MM dd”

4

5 回答 5

3

\变成太空怎么样?

.ToString("yyyy MM dd")
于 2012-10-25T13:10:55.533 回答
1

从日期到字符串

var str= date.ToString("yyyy MM dd")

和迄今为止的字符串

DateTime date = DateTime.ParseExact(string, "yyyy MM dd", CultureInfo.InvariantCulture);
于 2012-10-25T13:10:48.767 回答
1

基于 Marc 的回答,您似乎对DateTime对象与string日期表示的实际工作方式有些混淆。这DateTime只是从起点的偏移量。

代码中的这一行首先从 SQL 阅读器中的 Date 列中获取值,然后将其转换为具有"yyyy/MM/DD"格式的字符串,最后将该字符串转换为DateTime对象。

= Convert.ToDateTime((r["Date"]).ToString("yyyy/MM/dd"));

如您所见,您最终得到的是一个DateTime对象,而不是string您想要的显示。如果您确实希望此代码仅返回 formatted string,那么您的最后一行应如下所示:

编辑

= r.GetDateTime(r.GetOrdinal("Date")).ToString("yyyy MM dd");

于 2012-10-25T13:19:26.760 回答
0

所以你想要这种格式:“yyyy MM dd”,但你使用这个“yyyy/MM/dd”。

反而:

String dateString = r.GetDateTime(r.GetOrdinal("Date")).ToString("yyyy MM dd");

看:http: //ideone.com/XecnUP

于 2012-10-25T13:10:58.100 回答
0

ADateTime 没有格式。它只是“自 {epoch} 以来多久”,给予或接受一些偏移量/时区信息。如果源中的值日期时间,那么您只需要:

DateTime date = (DateTime)r["Date"];

然后您可以稍后在 UI 中对其进行格式化。但要重复一遍: aDateTime 没有格式

于 2012-10-25T13:11:37.593 回答