Erstellungsdatum benutzerfreundlich anzeigen
Bei der Anzeige der Build-Details Ihrer Anwendung ist es wichtig, diese in einem Format darzustellen, das für Benutzer leicht verständlich ist. Den meisten Benutzern ist die Build-Nummer weniger wichtig als vielmehr die Frage, ob sie über die neueste Version verfügen.
Build-Nummer und -Datum abfragen
Während es möglich ist, die Build-Nummer direkt mit Assembly.GetExecutingAssembly().GetName().Version.ToString()
abzurufen, erfordert das Abrufen des Build-Datums einen anderen Ansatz.
Linker-Zeitstempel abrufen
Der zuverlässigste Weg, das Erstellungsdatum zu bestimmen, besteht darin, den Linker-Zeitstempel im PE-Header der ausführbaren Datei abzurufen. Dieser Zeitstempel gibt den Zeitpunkt an, zu dem die ausführbare Datei erstellt wurde.
C#-Code zum Extrahieren des Linker-Zeitstempels
Joe Spivey hat einen C#-Codeausschnitt zum Extrahieren des Linker-Zeitstempels bereitgestellt:
<code class="language-csharp">public static DateTime GetLinkerTime(this Assembly assembly, TimeZoneInfo target = null) { var filePath = assembly.Location; const int c_PeHeaderOffset = 60; const int c_LinkerTimestampOffset = 8; var buffer = new byte[2048]; using (var stream = new FileStream(filePath, FileMode.Open, FileAccess.Read)) stream.Read(buffer, 0, 2048); var offset = BitConverter.ToInt32(buffer, c_PeHeaderOffset); var secondsSince1970 = BitConverter.ToInt32(buffer, offset + c_LinkerTimestampOffset); var epoch = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc); var linkTimeUtc = epoch.AddSeconds(secondsSince1970); var tz = target ?? TimeZoneInfo.Local; var localTime = TimeZoneInfo.ConvertTimeFromUtc(linkTimeUtc, tz); return localTime; }</code>
Nutzungsbeispiele
Um das Erstellungsdatum in Ortszeit abzurufen, verwenden Sie den folgenden Code:
<code class="language-csharp">var linkTimeLocal = Assembly.GetExecutingAssembly().GetLinkerTime();</code>
Anleitung zu .NET Core
Während diese Methode in .NET Core 1.0 funktioniert, ist sie nach .NET Core 1.1 veraltet und führt möglicherweise zu falschen Ergebnissen.
Das obige ist der detaillierte Inhalt vonWie kann ich in meiner Anwendung benutzerfreundlich ein Build-Datum anstelle einer Build-Nummer anzeigen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!