Entfernen Zeitzonen-Offset Aus DateTimeOffset

        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(); 

ERGEBNIS IN DER DATENBANK: 2008-05-01 00:00:00.0000000 -04:00

Wie schalte ich -4:00 in +00:00 (aus dem code vor dem speichern)?

Habe ich versucht:

    public Task<DateTimeOffset> SetTimeZoneOffsetToZero(DateTimeOffset dateTimeOffSetObj)
    {
        TimeSpan zeroOffsetTimeSpan = new TimeSpan(0, 0, 0, 0, 0);
        return dateTimeOffSetObj.ToOffset(zeroOffsetTimeSpan);
    }

Es nicht tun.

End-Ziel ist nur ein Datum ohne Zeit oder Zeitzone offset. Ich möchte NICHT konvertieren Zeit in einer anderen Zeitzone (d.h. ich möchte nicht, subtrahieren Sie 4 Stunden von der 00:00:00.0000000 Zeit, und entfernen Sie set time offset zu +00:00 ich es nur will, um den Versatz zu +00:00). Ich möchte das aktuelle Datum mit null-offset.

Edit:

Hier wird etwas vorgeschlagen, an anderer Stelle:

    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

War ich mir sicher, dass SpecifyKind UMWANDELN würde meine dateTimeOffset, z.B. ändern Sie die Uhrzeit und die Zeitzone offset, aber auf Tests, scheint es nur ändern Sie die Zeitzone-offset, das ist, was ich will. Ist es ein problem mit es zu tun auf diese Weise?

Sie müssen Bedenken, dass dies ein wenig anders. Sie haben immer eine Zeitzone und eine Zeit-Komponente. Sie können die Zeit auf 0 (Mitternacht). Aber Sie müssen so tun, für einen angegebenen Zeitzone. Was Sie wahrscheinlich wollen, ist das Datum.Utc.Datum, um die UTC-Zeitzone und dann das Datum Nullen aus der Zeit Teil.
Wenn ich date.Utc.Datum, wird es wieder ein ANDERES Datum als der, den ich habe, wenn es auf die Kante?
Guter Punkt. Vielleicht Datum.Utc.Datum?
Es gibt eine Menge von Informationen, die hier fehlen. Was die Datenbank-Plattform verwenden Sie? Was Daten-access-Technologie ist das? (EF-vielleicht?) Was ist der Datentyp des Feldes in der Datenbank? Welcher Datentyp ist die test Eigenschaft? Welchen code verwenden Sie, um abrufen die Daten wo sehen Sie die -04:00 offset? Wahrscheinlich der offset wird angezeigt, weil es eine Konvertierung in die lokale Zeit-zone, während der Abruf, aber Sie zeigen nicht, dass Teil. Ein MCVE.wäre hilfreich.
db: SQL, field-date-Typ: datetimeoffset(7), test-prop: DateTimeOffset, "abrufen von Daten": ich bin auf der Suche auf die Daten in SQL Server manuell @DavidThielen Versuchen das jetzt.

InformationsquelleAutor VSO | 2016-05-16

Schreibe einen Kommentar