2

たとえば、12/31/2012 形式を DateTime に変換しようとしていますが、このコードを実行すると変換は機能しますが、時刻は最新ではありません。私は DateTime に変換しようとしていますが、現在の時刻で:

例: 以下のコードを実行して日付を入力すると: 12/31/2012

私は得る: 12/31/2012 12:00:00 AM

午前 12:00:00 の代わりに現在の時刻を取得する方法がわかりません

    Console.Write("Enter Current Date: ");

    string strMyDate = Console.ReadLine();

    DateTime dt = DateTime.Parse(strMyDate);

    Console.WriteLine(dt);

    Console.ReadKey();
4

5 に答える 5

9

DateTime.Nowプロパティを使用して時刻のみを抽出TimeOfDayし、手動で入力した日付に追加できます。

var time = dt.Add(DateTime.Now.TimeOfDay);

追加のメモとして、ユーザーが入力した値は解析可能な日付ではない可能性があるため、代わりにDateTime.TryParseを使用します。

DateTime dt;
var isDate = DateTime.TryParse(strMyDate, out dt);
if(isDate)
{
   var time = dt.Add(DateTime.Now.TimeOfDay);
}
于 2013-04-17T18:19:30.260 に答える
1

DateTime.Now現在時刻を表示します。最初の値の日付部分と時間部分を組み合わせNowて結果を取得します。

于 2013-04-17T18:19:36.483 に答える
1

これを文字列に追加します。

string strMyDate = Console.ReadLine();
strMyDate = string.Format("{0} {1}",
    strMyDate,
    DateTime.Now.ToShortTimeString());
于 2013-04-17T18:19:40.147 に答える
1

実際にはこれをコンパイルしていませんが、次のようなものが動作するはずです:

DateTime dt = DateTime.Parse("12/31/2012 " + DatTime.Now.TimeOfDay.ToString());
于 2013-04-17T18:20:44.390 に答える
1

DateTime.Now の時間、分、秒の部分から時間を構築できます。

string strMyDate = "12/31/2012";
DateTime dt = DateTime.Parse(strMyDate);
DateTime current = DateTime.Now;
dt = dt.AddHours(current.Hour).AddMinutes(current.Minute).AddSeconds(current.Second);
Console.WriteLine(dt);
于 2013-04-17T18:21:33.867 に答える