Datum aus anderer Zeitzone in TDateTime
Hallo,
ich habe einen String vorliegen:
Code:
Dies muss ich in eine TDateTime Variable bekommen, unter berücksichtigung der Zeitzone des Benutzers. Ich finde dazu leider keine Funktion... muss ich das irgendwie selbst machn? Weiß einer von euch vllt weiter?
2015-07-22 23:04:20 UTC
Danke! |
AW: Datum aus anderer Zeitzone in TDateTime
Wer hat sich dieses Format denn ausgedacht?
Ist das irgendein Standard? |
AW: Datum aus anderer Zeitzone in TDateTime
Nein, ich bekomme die Daten aus einer API. Ich muss halt das Datum bzw die Uhrzeit, so berechnen, dass es zu der Zeitzone passt, die der Benutzer hat. Also in meinem Fall von UTC -> MEZ als eine Stunde addieren. Ich hatte halt irgendwie gehofft, dass es eine fertige Funktion gibt, die UTC zur normalen Zeit macht
|
AW: Datum aus anderer Zeitzone in TDateTime
[F1]
System.DateUtils.TTimeZone.UtcOffsetAus RAD Studio API Documentation Übergeordnet: TTimeZone property UtcOffset: TTimeSpan read GetCurrentUtcOffset;C++ __property System::Timespan::TTimeSpan UtcOffset = {read=GetCurrentUtcOffset};EigenschaftenTyp Sichtbarkeit Quelle Unit Übergeordnet property public System.DateUtils.pas System.DateUtils.hpp System.DateUtils TTimeZone BeschreibungGibt den aktuellen Offset von UTC (Coordinated Universal Time) für eine Zeitzone zurück. Die Eigenschaft UtcOffset gibt den aktuellen Offset von UTC für die Zeitzone zurück. Kategorie: API-Dokumentation [/F1] |
AW: Datum aus anderer Zeitzone in TDateTime
Mich würden jetzt noch ein paar andere Strings interessieren. Steht da am Schluss immer "UTC"? Wenn nicht, wie werden andere Zeitzonen angegeben?
|
AW: Datum aus anderer Zeitzone in TDateTime
Ansonsten gibt es bei http://docwiki.embarcadero.com/Libra...tils.TTimeZone auch noch die Methode
Delphi-Quellcode:
.
ToLocalTime
Dazu muss man natürlich erst die Zeit bestimmen und dann mit der Methode umrechnen lassen. |
AW: Datum aus anderer Zeitzone in TDateTime
Man könnte noch eine Prüfung auf den String "UTC" am Ende einbauen, aber das überlasse ich dem geneigten Leser mal als Übung. Stören tut er bei der Umwandlung aber nicht.
Delphi-Quellcode:
function StrUTCToLocalTime(const Value: string): TDateTime;
var fmt: TFormatSettings; begin fmt.ShortDateFormat := 'yyyy/mm/dd'; fmt.DateSeparator := '-'; fmt.TimeSeparator := ':'; result := TTimeZone.Local.ToLocalTime(StrToDateTime(Value, fmt)); end; |
AW: Datum aus anderer Zeitzone in TDateTime
Zitat:
Zitat:
Gruß K-H |
AW: Datum aus anderer Zeitzone in TDateTime
Hallo,
danke Uwe für deine Antwort. Ich habe es doch heute erst gebraucht, aber leider kann ich das so nicht übernehmen. Ich habe Delphi XE8 Professional und bei mir wir TTimeZone nicht erkannt. Delphi denkt es ist in Winapi.Windows, aber da ist es wohl nicht. Was ist denn die richtige Unit? |
AW: Datum aus anderer Zeitzone in TDateTime
|
AW: Datum aus anderer Zeitzone in TDateTime
Müsste in DateUtils zu finden sein.
|
AW: Datum aus anderer Zeitzone in TDateTime
@Cubysoft
...auch wenn die Frage schon beantwortet ist, hier noch ein Tipp. Hättest du die Delphi Referenz bemüht, wäre es dir sofort ins Auge gefallen. http://www.delphipraxis.net/dp_refer...uery=TTimeZone Das kann man auch als Suchmaschinenprovider in den Browser packen. Schneller geht keine Hilfe. :thumb: |
AW: Datum aus anderer Zeitzone in TDateTime
Danke für eure Antworten. Ich hatte vorher nur danach gegooglet, allerdings wohl nicht aufmerksam genug :pale:
Nur eine blöde Frage: Wenn ich Rechtsklick auf ein unbekanntes Symbol mache, dann Refactoring->Unit suchen.. Warum findet er dann nicht die DateUtils? |
AW: Datum aus anderer Zeitzone in TDateTime
Liste der Anhänge anzeigen (Anzahl: 1)
Moin...
Das sollte keine Kritik sondern eher ein Tipp für die Zukunft sein. 8-) Zitat:
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 16:27 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz