4

私は現在の時刻を取得しようとしています:

date = "(" + DateTime.Today.Year.ToString() + "-" + 
DateTime.Today.Month.ToString() + "-" + DateTime.Today.Day.ToString() + " " + 
"(" + DateTime.Today.Hour.ToString() + ":" + DateTime.Today.Minute.ToString() 
+")" + ")";

これは次のような日付を取得する必要があります。

(2013-2-1(13:01))

しかし、それは私に与えます:

(2013-2-1(0:0))

どうすればこれを修正できますか?

4

9 に答える 9

9

DateTime.Today次のように文書化されているものを使用しています。

時間コンポーネントが00:00:00に設定された、今日の日付に設定されたオブジェクト。

そうです、HourMinuteコンポーネントが見つかった場合、それら0になります...

現在の時刻が必要な場合は、DateTime.Now代わりにを使用してください。両方ともシステムローカルタイムゾーンを使用することに注意してくださいTodayNowそれが本当に使用したいものであることを確認する必要があります。(ローカルクライアントアプリではおそらく問題ありませんが、Webアプリでは問題ありません。)

于 2013-02-01T11:03:52.667 に答える
5

現在使用しているすべての連結の代わりに、DateTimeオブジェクトのToString()メソッドを使用してください...

string date = DateTime.Now.ToString("(yyyy-M-d (hh:mm))");

また、他の多くの人が指摘しているように、のDateTime.Now代わりにの使用に注意してくださいDateTime.Today

于 2013-02-01T11:08:23.993 に答える
2

DateTime.Todayの代わりにDateTime.Nowを使用します

DateTime.Todayの時間部分は00:00:00に設定されていますDateTime.Nowは、ローカルコンピューターの現在の日付と時刻を
取得します

于 2013-02-01T11:03:37.463 に答える
2

DateTime.Today時間要素を切り捨てる方法があります。

DateTime.Now代わりに、完全な日付と時刻を提供するものを使用してください。

于 2013-02-01T11:04:01.817 に答える
2

DateTime.Nowの代わりに使用してくださいDateTime.TodayDateTime.Today時刻は含まれず、日付のみが含まれます。参照:System.DateTime.NowとSystem.DateTime.Todayの違い

于 2013-02-01T11:05:05.300 に答える
2

Webアプリケーションの場合はNodaTimeを使用します。DateTime.Nowローカルの日付と時刻に使用します。

したがって、次のようになります。

date = "(" + DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-" + DateTime.Now.Day.ToString() + " " + "(" + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() +")" + ")";
于 2013-02-01T11:06:09.483 に答える
2

フォーマットに従って、現在の日時にこの短いコードを試してください

var date = DateTime.Now.ToString("(yyyy-MM-dd(HH:mm))");

于 2013-02-01T11:11:59.643 に答える
2

連結の代わりに次のコードを使用してください。これまでに行った連結作業よりもはるかに最適化されています。

string date = DateTime.Now.ToString("(yyyy-M-d (hh:mm))");

またDateTime.Today、時間要素は含まれていません。

于 2013-02-01T11:15:18.550 に答える
1

DateTime.Todayuを返し2013-2-1 00:00:00ます..それは確かな時間を与えますが、タイムスタンプはに設定されてい00:00:00.ます。これが、例外が発生しない理由です。nはまだ発生してい00:00:00ます。DateTime.Now現在のタイムスタンプに使用します。

于 2013-02-01T12:06:22.863 に答える