-3

私のデータベースには、「2012-10-01 23:59:59.000」という形式の「From Date」が含まれていますが、値は「01 Oct 2012 23:59:59:000」となります。では、「10月」形式なしで日付を取得するにはどうすればよいですか。

これもやってみた

     foreach (DataRow dr in _dt.Rows)
    {
        dr["FromDt"] = String.Format("{0:dd-MM-yyyy hh:mm tt zzz}", dr["FromDt"]);
        dr["ToDt"] = String.Format("{0:dd-MM-yyyy}", dr["ToDt"]);  
    }

しかし、できませんでした..

私は、私の知る限り、stackoverflow のすべてのクワイアを参照しました。いくつかの方法を提案してください。前もって感謝します

私はこれらの次のトリルも使用しました-

            DateTime dt = DateTime.Parse(dr["FromDt"].ToString());
        dr["FromDt"] = String.Format("{0:dd-MM-yyyy hh:mm tt zzz}", dr["FromDt"]);
4

4 に答える 4

1

tl;drそのコードDateTimeorDateTimeOffset値に対して機能します。ただし、この場合、のオブジェクトのタイプはDateTimeまたはDateTimeOffset値でdr["FromDt"]はありません。

「期待どおりに動作します」:

string.Format("{0:yyyy-MM-dd}",DateTime.Now) // -> 2012-10-09

観察された行動; 「foo」は文字列であり、フォーマット修飾子は無視されます。

string.Format("{0:junk}","foo") // -> foo

値が文字列である場合(データベースからの読み取り中に誤って変換された可能性があります-表示された値は疑わしいように見えます-データベースsomeDateTime.ToString()ではそうではありません):

  1. 変換を修正/削除(正しい)または、
  2. 最初にそれをDateTimeに変換し直します(ハック):)
于 2012-10-10T04:36:54.110 に答える
1

これを試してみてください

フィールドを DateTime dt に変換し、フォーマットを適用すると、これが機能するはずです

DateTime dt = DateTime.Parse(dr["FromDt"];
String.Format("{0:dd MMM yyyy hh:mm:ss tt zzz}", dt)

タイムゾーンが必要ない場合は、次のように使用する必要があります

String.Format("{0:dd MMM yyyy hh:mm:ss}", dt)

以下の例から必要に応じて、任意の形式を使用できます

 // create date time 2008-03-09 16:05:07.123
    DateTime dt = new DateTime(2008, 3, 9, 16, 5, 7, 123);

    String.Format("{0:y yy yyy yyyy}", dt);  // "8 08 008 2008"   year
    String.Format("{0:M MM MMM MMMM}", dt);  // "3 03 Mar March"  month
    String.Format("{0:d dd ddd dddd}", dt);  // "9 09 Sun Sunday" day
    String.Format("{0:h hh H HH}",     dt);  // "4 04 16 16"      hour 12/24
    String.Format("{0:m mm}",          dt);  // "5 05"            minute
    String.Format("{0:s ss}",          dt);  // "7 07"            second
    String.Format("{0:f ff fff ffff}", dt);  // "1 12 123 1230"   sec.fraction
    String.Format("{0:F FF FFF FFFF}", dt);  // "1 12 123 123"    without zeroes
    String.Format("{0:t tt}",          dt);  // "P PM"            A.M. or P.M.
    String.Format("{0:z zz zzz}",      dt);  // "-6 -06 -06:00"   time zone

// date separator in german culture is "." (so "/" changes to ".")
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9/3/2008 16:05:07" - english (en-US)
String.Format("{0:d/M/yyyy HH:mm:ss}", dt); // "9.3.2008 16:05:07" - german (de-DE)


// month/day numbers without/with leading zeroes
String.Format("{0:M/d/yyyy}", dt);            // "3/9/2008"
String.Format("{0:MM/dd/yyyy}", dt);          // "03/09/2008"

// day/month names
String.Format("{0:ddd, MMM d, yyyy}", dt);    // "Sun, Mar 9, 2008"
String.Format("{0:dddd, MMMM d, yyyy}", dt);  // "Sunday, March 9, 2008"

// two/four digit year
String.Format("{0:MM/dd/yy}", dt);            // "03/09/08"
String.Format("{0:MM/dd/yyyy}", dt);          // "03/09/2008"

String.Format("{0:t}", dt);  // "4:05 PM"                         ShortTime
String.Format("{0:d}", dt);  // "3/9/2008"                        ShortDate
String.Format("{0:T}", dt);  // "4:05:07 PM"                      LongTime
String.Format("{0:D}", dt);  // "Sunday, March 09, 2008"          LongDate
String.Format("{0:f}", dt);  // "Sunday, March 09, 2008 4:05 PM"  LongDate+ShortTime
String.Format("{0:F}", dt);  // "Sunday, March 09, 2008 4:05:07 PM" FullDateTime
String.Format("{0:g}", dt);  // "3/9/2008 4:05 PM"                ShortDate+ShortTime
String.Format("{0:G}", dt);  // "3/9/2008 4:05:07 PM"             ShortDate+LongTime
String.Format("{0:m}", dt);  // "March 09"                        MonthDay
String.Format("{0:y}", dt);  // "March, 2008"                     YearMonth
String.Format("{0:r}", dt);  // "Sun, 09 Mar 2008 16:05:07 GMT"   RFC1123
String.Format("{0:s}", dt);  // "2008-03-09T16:05:07"             SortableDateTime
String.Format("{0:u}", dt);  // "2008-03-09 16:05:07Z"            UniversalSortabl
于 2012-10-10T04:59:34.320 に答える
0

どうですか:

var dt = DateTime.ParseExact(dr["FromDt"].ToString(), "dd MMM yyyy HH:mm:ss:fff", enUS, DateTimeStyles.None);
var output = dt.ToString("dd-MM-yyyy HH:mm:ss.fff");

編集: 入力文字列のわずかに奇妙な形式に対応するために、ParseExact を使用するように変更されました。

于 2012-10-10T05:08:06.020 に答える
-1

datetimepicker を使用している場合は、そのプロパティに移動し、format プロパティを short に設定します。次に、日付を表示している間、次のように表示する必要があります>>

dtpFrmDate.Value.Date.ToShortDateString();

私はそれがあなたに望ましい結果を与えると思います。

于 2012-10-10T04:45:38.083 に答える