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
.