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();
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);
Code: Select all
Assert.AreEqual(14, hl7DateTime.Value.Hour);
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?