0

我从数据库中获取日期字符串值(3/13/2013 12:00:00AM),我需要像这种格式(yyyy-mm-dd)一样转换。请帮我解决这个问题。

string targetdate = "3/13/2013 12:00:00AM";(getting date value from DB)
DateTime lastdate = DateTime.ParseExact(targetdate, "yyyy-mm-dd", 
                  System.Globalization.CultureInfo.CurrentUICulture.DateTimeFormat);

我试过了

Iformatprovider = null. 

但我得到同样的错误“字符串未被识别为有效的日期时间

4

3 回答 3

1

首先,您需要DateTime使用格式将日期字符串转换为类型对象,"M/d/yyyy HH:mm:sstt"稍后您可以使用"yyyy-MM-dd". (你用小写m的月份,它应该是大写M的月份。

string targetdate = "3/13/2013 12:00:00AM";
DateTime lastdate = DateTime.ParseExact(targetdate, 
                       "M/d/yyyy hh:mm:sstt", 
                       System.Globalization.CultureInfo.InvariantCulture);

string newFormat = lastdate.ToString("yyyy-MM-dd");

newFormat将包含"2013-03-13"

于 2013-03-11T05:14:27.760 回答
1

如果您知道您拥有哪种日期时间格式以及转换为哪种格式,那么在 .Net 中日期时间转换非常容易。这是一个例子。

    String origionalDate = "12/20/2013"; // Format : MM/dd/yyyy
    string origionalFormat = "MM/dd/yyyy";
    string convertInToFormat="dd/MM/yyyy";
    String convertedDate;
    DateTime objDT;

    if (DateTime.TryParseExact(origionalDate, origionalFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out objDT) == true)
    {
        convertedDate = objDT.ToString(convertInToFormat);
        Response.Write("<b>Origional DateTime Format ( " + origionalFormat + " ) : </b>" + origionalDate);
        Response.Write("<br/>");
        Response.Write("<b>Converted DateTime Format ( " + convertInToFormat + " )  : </b>" + convertedDate);
    }
    else
    {
        Response.Write("<b>Not able to parse datetime.</b>");
    }

有关此的更多详细信息,请访问此链接。点击这里...

于 2013-04-26T07:57:20.123 回答
1

我认为问题在于日期时间

"3/13/2013 12:00:00AM"

不应该是凌晨 12:00:00。

应该是下午 12:00:00。

例子

  string targetdate = "3/13/2013 11:59:59AM";
  DateTime lastdate = DateTime.ParseExact(targetdate,
                               "M/d/yyyy HH:mm:sstt",
                               System.Globalization.CultureInfo.InvariantCulture);

  lastdate=lastdate.AddSeconds(1);

你会得到

  3/13/2013 12:00:00 AM

我建议你把它放在数据库端。

如果你使用的是 sql server 那么

例子

以下脚本使用 CONVERT() 函数来显示不同的格式。我们将使用 GETDATE() 函数来获取当前日期/时间:

CONVERT(VARCHAR(19),GETDATE())
CONVERT(VARCHAR(10),GETDATE(),10)
CONVERT(VARCHAR(10),GETDATE(),110)
CONVERT(VARCHAR(11),GETDATE(),6)
CONVERT(VARCHAR(11),GETDATE(),106)
CONVERT(VARCHAR(24),GETDATE(),113)

结果看起来像这样:

Nov 04 2011 11:45 PM
11-04-11
11-04-2011
04 Nov 11
04 Nov 2011
04 Nov 2011 11:45:34:243 
于 2013-03-11T05:55:59.507 回答