C# analysiert DateTime in einer bestimmten Zeitzone, wenn kein Offset angegeben wirdC#

Ein Treffpunkt für C#-Programmierer
Guest
 C# analysiert DateTime in einer bestimmten Zeitzone, wenn kein Offset angegeben wird

Post by Guest »

Ich habe eine Dienstprogrammmethode, die versucht, eine Datums-/Uhrzeitzeichenfolge in eine Datums-/Uhrzeitangabe zu analysieren. Ein Teil davon ist unten.

Code: Select all

 if (dateTime is { Kind: DateTimeKind.Unspecified, TimeOfDay.Ticks: > 0 })
{
var cst = TimeZoneInfo.FindSystemTimeZoneById("Central Standard Time");
dateTime = TimeZoneInfo.ConvertTimeToUtc(dateTime, cst);
}
return dateTime.ToUniversalTime();
Manchmal wurde für die zu analysierenden Zeichenfolgen kein Zeitzonen-Offset angegeben. Aber sie sind implizit Central Standard Times. Beispielsweise sollte dieser Zeichenfolgenwert „20241010091157“ 10.10.2024 09:11:57 CST lauten. Meine Dienstprogrammmethode versucht, die Zeitzone für Datumsangaben festzulegen, für die kein Typ angegeben ist, die aber dennoch Zeitwerte haben.
Der folgende Komponententest besteht, wenn ich ihn lokal auf einem Computer in CST-Zeit ausführe Zone, schlägt jedoch fehl, wenn ich den Build-Agenten ausführe.

Code: Select all

    message.PV1.AdmitDateTime.Time.Value = "20241010091157";

var hl7DateTime = hl7Utils.GetHl7DateTimeUtc(message.PV1.AdmitDateTime);
Assert.IsNotNull(hl7DateTime);
Assert.AreEqual(2024, hl7DateTime.Value.Year);
Assert.AreEqual(10, hl7DateTime.Value.Month);
Assert.AreEqual(10, hl7DateTime.Value.Day);
Assert.AreEqual(14, hl7DateTime.Value.Hour);
Assert.AreEqual(11, hl7DateTime.Value.Minute);
Assert.AreEqual(57, hl7DateTime.Value.Second);
Assert.AreEqual(hl7DateTime.Value.Kind, DateTimeKind.Utc);
Diese Behauptung schlägt auf dem Build-Agenten fehl:

Code: Select all

Assert.AreEqual(14, hl7DateTime.Value.Hour);
Fehler: Assert.AreEqual fehlgeschlagen. Erwartet:. Tatsächlich:
Was ist der richtige Weg, um eine Zeichenfolge in eine Datums-/Uhrzeitangabe zu analysieren und die Zeitzone als Standard festzulegen, wenn diese nicht in der analysierten Zeichenfolge angegeben ist?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post