DateTimeOffset testDateAndTime = new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0));
//CLEAN TIME AND DATE
testDateAndTime = testDateAndTime.DateTime.Date;
var datesTableEntry = db.DatesTable.First(dt => dt.Id == someTestId);
datesTableEntry.test= testDateAndTime;
db.SaveChangesAsync();
RÉSULTAT DE LA BASE DE DONNÉES: 2008-05-01 00:00:00.0000000 -04:00
Suppression Time Zone décalée par rapport DateTimeOffset
Comment puis-je tourner -4:00
en +00:00
(à partir du code, avant d'enregistrer)?
J'ai essayé:
public Task<DateTimeOffset> SetTimeZoneOffsetToZero(DateTimeOffset dateTimeOffSetObj)
{
TimeSpan zeroOffsetTimeSpan = new TimeSpan(0, 0, 0, 0, 0);
return dateTimeOffSetObj.ToOffset(zeroOffsetTimeSpan);
}
Il ne fait rien.
L'objectif final est simplement d'avoir une date sans décalage de fuseau horaire ou de fuseau horaire. Je ne veux pas convertir le temps en un autre fuseau horaire (je ne veux pas qu'il soustrait 4 heures de l'heure 00:00:00.0000000
et supprime le décalage horaire à +00:00
, je veux juste qu'il règle l'offset sur +00:00
). Je veux la date actuelle, avec un décalage de zéro.
Edit:
Voici quelque chose suggéré ailleurs:
DateTimeOffset testDateAndTime = new DateTimeOffset(2008, 5, 1, 8, 6, 32, new TimeSpan(1, 0, 0));
testDateAndTime = testDateAndTime.DateTime.Date; //Zero out time portion
testDateAndTime = DateTime.SpecifyKind(testDateAndTime.Date, DateTimeKind.Utc); //"Zero out" offset portion
J'étais sûr que SpecifyKind
convertirait mon Datetimeoffset, par exemple changer à la fois l'heure et le décalage de la fuseau horaire, mais lors du test, il semble juste changer le décalage de fuseau horaire, ce qui est ce que je veux. Y a-t-il un problème à le faire de cette façon?
Vous devez penser à ceci un peu différent. Vous avez toujours un fuseau horaire et un composant temporel. Vous pouvez régler l'heure sur 0 (minuit). Mais vous devez le faire pour un fuseau horaire spécifié. Ce que vous voulez probablement, c'est date.Utc.Date pour obtenir le fuseau horaire UTC, puis la date à zéro sur la partie heure. –
@DavidThielen Si je date.Utc.Date, retournera-t-il une date DIFFERENTE alors celle que j'ai si elle est sur le bord? – VSO
Bon point. Peut-être Date.Utc.Date? –