TimespanをDatetimeに変換したい。これどうやってするの?TimeSpanからDateTimeへの変換
私はGoogleでの一つの方法が見つかりました:
DateTime dt;
TimeSpan ts="XXX";
//We can covnert 'ts' to 'dt' like this:
dt= Convert.ToDateTime(ts.ToString());
がこれを行うには、他の方法はありますか?
TimespanをDatetimeに変換したい。これどうやってするの?TimeSpanからDateTimeへの変換
私はGoogleでの一つの方法が見つかりました:
DateTime dt;
TimeSpan ts="XXX";
//We can covnert 'ts' to 'dt' like this:
dt= Convert.ToDateTime(ts.ToString());
がこれを行うには、他の方法はありますか?
TimeSpanをDateTimeに変換することはあまり論理的ではありません。レッピーが上に述べたことを理解しよう。 TimeSpanは、6 Days 5 Hours 40 minutesと表示されます。それは日付ではありません。私が6日言うならば。あなたはそれから日付を推測できますか? REFERENCE日付がない限り、答えはNOです。
TimeSpanをDateTimeに変換する場合は、参照日付が必要です。 6日&いつから5時間?だから、あなたは次のようなものを書くことができます:
DateTime dt = new DateTime(2012, 01, 01);
TimeSpan ts = new TimeSpan(1, 0, 0, 0, 0);
dt = dt + ts;
あなたの答えは正しいと私はあなたに感謝します...しかし、TimeSpanをDateTime _can_に変換することは論理的で意味のあることです。たとえば、Entity Frameworkは、TSQLの時刻タイプ(Time-of-day)をTimeSpanにマップします。深夜からの経過時間です。値を書式設定するにはDateTimeとしたいので、日付部分を除外するフォーマッタメソッドの1つを使うことができます... EFはDateTimeを代わりに使うべきですが、深夜からTimeSpanを処理するには、私はEFの動作を変更することはできません。 – steve
変換にDateTime.Today + tsを使用していますが、表示する時刻をフォーマットしたい場合は、それは良く見えます – zquanghoangz
ちょうどts + dtを試して "+演算子を適用できませんでした"ので注意してください。その合計は可換性ではありません。 – Michal
参考にしておくと便利です。 http://msdn.microsoft.com/en-us/library/system.datetime.add.aspx
// Calculate what day of the week is 36 days from this instant.
System.DateTime today = System.DateTime.Now;
System.TimeSpan duration = new System.TimeSpan(36, 0, 0, 0);
System.DateTime answer = today.Add(duration);
System.Console.WriteLine("{0:dddd}", answer);
グリッドに表示する必要があるデータベースからTime値を返すときに非常に便利な機能です! – gchq
から
例選択した答えは厳密には正しくですが、私はOPは、私は同様の問題を持っていたとして、ここで取得しようとしているかを理解信じています。
私はグリッドコントロール(hh:mm)で表示したいTimeSpanを持っていましたが、グリッドはTimeSpanを理解できないように見えました。 OPには同様のシナリオがありますが、TimeSpanだけが関連する部分ですが、DateTime参照ポイントを追加する必要性は考慮されていません。
上記のように、DateTime.MinValueを追加しただけです(日付は変わりませんが)。その後、結果の日付の時間部分としてタイムスパンをレンダリングするとグリッドによって無視されます。
これは、チャートを除いて、まさに私の使用例でした。私は経過時間をX軸に表示する必要がありました。 –
上記のすべての問題は、変換によってTimeSpanで指定された不正な日数が返されることです。
上記を使用すると、2ではなく3が返されます。
TimeSpanの引数に2日間保存してDateTimeの日付として返す方法に関するアイデアはありますか?
public void should_return_totaldays()
{
_ts = new TimeSpan(2, 1, 30, 10);
var format = "dd";
var returnedVal = _ts.ToString(format);
Assert.That(returnedVal, Is.EqualTo("2")); //returns 3 not 2
}
のTimeSpanは、これを達成するために、新鮮な日時に追加することができます。
しかし、前述のように、有効な開始日がないと厳密には論理的ではありません。私は というユースケースを遭遇しましたが、私は時間の面だけを必要としました。ロジックが正しい限り、正常に動作します。
簡単な方法は、使用することは、ダニ:あなたが唯一のデータグリッドまたはラベルの時間値を表示する必要がある場合は
new DateTime((DateTime.Now - DateTime.Now.AddHours(-1.55)).Ticks).ToString("HH:mm:ss:fff")
この機能はあなたに(日/月/年なし)日付
を与えます同様に、最良の方法は、datetimeデータ型で直接時刻を変換します。あなたは(あなたが必要となります)開始点を持っている場合は表1
var StartTime = new DateTime(item.StartTime.Ticks);
FROM myTimeFieldとして
SELECT CONVERT(datetime型、myTimeField)は、ちょうど開始日にタイムスパンを追加します。 – leppie
私はスタートタイムを持っていません。公開されているAPIはDateTimeのみをサポートしています – Raghav55
開始点または終了点がない場合、何をしようとしているかは無意味です。 – leppie