Convertir DateTime en TimeSpan

Je veux convertir une instance DateTime instance TimeSpan , est-ce possible?

J’ai regardé autour de moi mais je n’ai pas trouvé ce que je voulais, je ne trouve que le décalage horaire. Plus précisément, je souhaite convertir une instance DateTime en millisecondes, puis l’enregistrer dans un IsolatedStorage.

Pour convertir un DateTime en TimeSpan vous devez choisir une date / heure de base – par exemple, minuit le 1er janvier 2000, et la soustraire de votre valeur DateTime (et l’append lorsque vous souhaitez reconvertir en DateTime ).

Si vous voulez simplement convertir un DateTime en un nombre, vous pouvez utiliser la propriété Ticks .

Vous pouvez simplement utiliser la propriété TimeOfDay de date et heure, qui est le type TimeSpan:

 DateTime.TimeOfDay 

Cette propriété existe depuis .NET 1.1

Plus d’informations: http://msdn.microsoft.com/en-us/library/system.datetime.timeofday(v=vs.110).aspx

 TimeSpan.FromTicks(DateTime.Now.Ticks) 

Dans le cas où vous utilisez TimePicker de WPF et Xceed (qui semble utiliser DateTime?) Comme un sélecteur d’intervalle de temps – comme je le fais maintenant – vous pouvez obtenir le total de millisecondes (ou un TimeSpan) comme ceci:

 var milliseconds = DateTimeToTimeSpan(timePicker.Value).TotalMilliseconds; TimeSpan DateTimeToTimeSpan(DateTime? ts) { if (!ts.HasValue) return TimeSpan.Zero; else return new TimeSpan(0, ts.Value.Hour, ts.Value.Minute, ts.Value.Second, ts.Value.Millisecond); } 

XAML:

  

Si non, je suppose que vous pouvez simplement ajuster mon DateTimeToTimeSpan () pour qu’il prenne également en compte les «jours» ou le fasse comme dateTime.Substract(DateTime.MinValue).TotalMilliseconds .

Essayez le code suivant.

  TimeSpan CurrentTime = DateTime.Now.TimeOfDay; 

Obtenez l’heure du jour et atsortingbuez-la à la variable TimeSpan .