Convertir DateTime pour TimeSpan
Je veux convertir un DateTime
instance dans une TimeSpan
exemple, est-il possible?
J'ai regardé autour, mais je ne pouvais pas trouver ce que je veux, je ne trouve que la différence de temps. Plus précisément, je veux convertir un DateTime
instance en millisecondes, pour ensuite l'enregistrer dans un IsolatedStorage.
Vous devez vous connecter pour publier un commentaire.
Pour convertir un
DateTime
à unTimeSpan
vous devez choisir une base de la date/le temps - par exemple, à minuit le 1er janvier 2000, et de la soustraire votreDateTime
valeur (et de l'ajouter quand vous voulez convertir retour àDateTime
).Tout simplement si vous voulez convertir un
DateTime
pour un certain nombre, vous pouvez utiliser leTiques
propriété.Vous pouvez simplement utiliser le TimeOfDay propriété de date, qui est TimeSpan type:
Cette propriété a été autour depuis .NET 1.1
Plus d'informations: http://msdn.microsoft.com/en-us/library/system.datetime.timeofday(v=vs. 110).aspx
DateTime myDateTime = DateTime.UtcNow;
ou que ce soit pour obtenir quelque chose dans un instance spécifique deDateTime
, vous pouvez utilisermyDateTime.TimeOfDay;
. Alternativement, vous pouvez couper l'intermédiaire & dire,DateTime.UtcNow.TimeOfDay
, natch. (Qui est,DateTime.TimeOfDay
, l'exemple de code est "invalide" & ne vous donnera pas une valeur de la même façonDateTime.UtcNow
, ce qui fait un certain sens. Vous avez besoin d'unDateTime
pour l'attraper par leTimeOfDay
valeur.)TimeOfDay
n'est que le Temps et ne comprennent pas que la date actuelle dans leTimeSpan
.Essayez le code suivant.
Obtenir le temps de la journée et de l'attribuer à
TimeSpan
variable.Dans le cas où vous êtes en utilisant WPF et Xceed est TimePicker (ce qui semble être l'utilisation d'DateTime?) en tant que sélecteur de plage de temps -comme moi - vous pouvez obtenir le montant total des millisecondes (ou une plage de Temps) hors de lui, comme si:
XAML :
Si non, je suppose que vous pouvez simplement ajuster mon DateTimeToTimeSpan() de sorte qu'il prend également des 'jours' en compte ou faire qqch comme
dateTime.Substract(DateTime.MinValue).TotalMilliseconds
.