Pourquoi DateTime.AddHours ne semble pas fonctionner?
J'ai le même résultat 1338161400 quand je fais
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
DateTime date = DateTime.Parse(@"28/05/12 01:30");
TimeSpan diff = date.ToUniversalTime() - origin;
Console.WriteLine( (Math.Floor(diff.TotalSeconds)).ToString());
ainsi que lorsque j'utilise la date.AddHours(-4) :
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
DateTime date = DateTime.Parse(@"28/05/12 01:30");
date.AddHours(-4);
TimeSpan diff = date.ToUniversalTime() - origin;
Console.WriteLine( (Math.Floor(diff.TotalSeconds)).ToString());
J'essaie d'obtenir 1338168600 comme http://www.mbari.org/staff/rich/utccalc.htm
Mise à jour:
Merci, j'ai changé de
DateTime origin = new DateTime(1970, 1, 1, 0, 0, 0, 0);
DateTime date = DateTime.Parse(@"28/05/2012 01:30");
date = date.AddHours(-4);
date = date.ToUniversalTime();
TimeSpan diff = date - origin;
Console.WriteLine((Math.Floor(diff.TotalSeconds)).ToString());
Mais j'ai eu 1338147000 pas encore 1338168600
OriginalL'auteur user310291 | 2012-05-28
Vous devez vous connecter pour publier un commentaire.
Dates sont des objets immuables, c'est à dire qu'ils ne peuvent pas être modifiées après la création. DateTime.AddHours retourne une nouvelle instance de DateTime, qui est décalée vers l'arrière par 4 heures, mais "date" ne sera pas modifié.
Utilisation:
Droit de réponse, je dois attendre 6 minutes avant de vérifier que la bonne réponse parce que de stackoverflow règle. Mais j'ai mis à jour mon post aussi pouvez-vous lire merci ?
Enfin passons, j'ai juste besoin d'ajouter +2 à la place 🙂
Je ne peux pas voir les problèmes avec le code, mais je ne peux pas se porter garant de l'exactitude de votre logique.
Date fourre toujours me donner des maux de tête j'ai renoncé à essayer de comprendre et faire fonctionner les choses 🙂
OriginalL'auteur Slugart
AddHours
renvoie une nouveauDateTime
objet qui est le résultat de l'ajout des heures sur l'original. L'original reste inchangé.Donc vous voulez
date = date.AddHours(-4);
au lieu de simplementdate.AddHours(-4);
OriginalL'auteur Rawling
La date initiale est de 4 heures en arrière, mais vous n'avez pas de nouvelle date. essayez plutôt ceci:
OriginalL'auteur John Woo
AddHours
retourne simplement le nouveau incrémenté date, utilisez ceci :OriginalL'auteur ThePower
DateTime n'est pas immuable. C'est juste que le DateTime méthodes ne changent pas la structure, mais au lieu de retourner un nouveau.
Si vous faites cela:
Ensuite, la structure de la d1 sera remplacé par d2 valeurs.
Je ne sais pas si c'est possible d'avoir un immuable struct.
OriginalL'auteur N73k
AddHours retourne un nouvel objet DateTime. ce faire:
Documentation: lien
OriginalL'auteur Adam
Essayer si cela fonctionne:
Cela semble changer le jour de la date également sur l'ajout d'heures.
OriginalL'auteur Sameeksha Kumari