0

データベースから日付文字列値 (2013 年 3 月 13 日 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. 

しかし、同じエラー「文字列は有効なDateTimeとして認識されませんでした」が表示されます

4

3 に答える 3

1

問題は日時にあると思います

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

午前 12:00:00 であってはなりません。

12:00:00PM のはずです。

  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サーバーを使用している場合

次のスクリプトは、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 に答える
1

.Net での DateTime 変換は、使用している datetime 形式と、それを変換する形式がわかっている場合は非常に簡単です。この例を次に示します。

    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

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 に答える