Hallo zusammen, ich habe eine Tabelle die mir im Feld A das Ende (Zeit) eines Prozesse anzeigt.
Diese Zeit ist aber nicht die wirkliche Zeit sondern die GMT Zeit. Gibt es eine elegante Lösung über eine Abfrage die genaue Zeit zu bekommen.
Danke Cédric
Hallo,
die GMT zeit, ist doch aber unser gültige Zeit, die im Sommer um eine Stunde verschoben ist.
Kannst Du das mal genauer erklären?
Was siehst Du für eine Zeitdifferenz zwischen UMT und unserer momentanen Zeit?
Und der Wechsel zwischen Sommer und Normalzeit muss auch berücksichtigt werden
, daher ist die Umrechnerei auch Datumsabhängig.
Kann sein das GMT der falsche Ausdruck ist.
Das Ende Prozesses zeigt es mir immer 2 Stunden früher an als es eigentlich ist. Das heisst momentan zeitgt es mir im SAP 13:05 anstatt 15:05 an.
Richtig, je nach Jahreszeit ist es entweder 1 oder 2 Stunden Differenz sein.
Danke.
Hallo,
Du kannst in der Abfrage 1 oder 2 Stunden addieren.
AktuelleZeit: ZeitfeldAusSAP + 1/24
für eine Stunde.
2/24 für 2 Stunden.
Aber da das ja Datumsabhängig ist, muss das Datum beachtet werden.
Nachtrag:
UTC-Zeit (Universal Time Coordinated, auch als GMT, Greenwich Mean Time bekannt)
Unsere Zeit ist im Winter UTC/UMT +1 und im Sommer UTC/UMT +2
Wenn also Deine Tabelle Sommer/Winterzeit Daten hat, muss zusätzlich noch das Dateum ausgewertet werden. Ich habe aber im Moment keine Lösung zur automatischen Ermittlung ob Sommer oder Winterzeit. Es wäre auch zu klären, ob dies SAP berücksichtigt, wenn ja, wäre es bei Access überflüssig.
GMT war früher, heute heist das UTC. Diese Zeit ändert sich nicht durch Sommer/Winterzeit und oder Zeitzonen. Unsere Zeitzone ist GMT + 1.
Zur Berechnung der Localzeit (GMT+-x) aus der UTC:
Type SYSTEMTIME
wYear As Integer
wMonth As Integer
wDayOfWeek As Integer
wDay As Integer
wHour As Integer
wMinute As Integer
wSecond As Integer
wMilliseconds As Integer
End Type
Type TIME_ZONE_INFORMATION
Bias As Long
StandardName(31) As Integer
StandardDate As SYSTEMTIME
StandardBias As Long
DaylightName(31) As Integer
DaylightDate As SYSTEMTIME
DaylightBias As Long
End Type
Declare Function SystemTimeToTzSpecificLocalTime Lib "KERNEL32.DLL" _
( _
ByRef TZI As TIME_ZONE_INFORMATION, _
ByRef ust As SYSTEMTIME, _
ByRef lst As SYSTEMTIME _
) As Long
Declare Function VariantTimeToSystemTime Lib "OLEAUT32.DLL" _
( _
ByVal vbtime As Double, _
lpSystemTime As SYSTEMTIME _
) As Long
Declare Function SystemTimeToVariantTime Lib "OLEAUT32.DLL" _
( _
lpSystemTime As SYSTEMTIME, _
vbtime As Double _
) As Long
Declare Function GetTimeZoneInformation Lib "KERNEL32.DLL" _
( _
lpTimeZoneInformation As TIME_ZONE_INFORMATION _
) As Long
Function UTC2Local(ByVal dDate As Double) As Date
Dim dbl As Double
Dim TZI As TIME_ZONE_INFORMATION
Dim lst As SYSTEMTIME, ust As SYSTEMTIME
VariantTimeToSystemTime dDate, ust
If GetTimeZoneInformation(TZI) > 0 Then
SystemTimeToTzSpecificLocalTime TZI, ust, lst
SystemTimeToVariantTime lst, dbl
End If
UTC2Local = dbl
End Function
der Aufruf ist dann z.B.
UTC2Local(CDate("28.07.2013 13:59:40"))
oderUTC2Local(CDate("28.11.2013 13:59:40"))
Hallo,
kleiner Einspruch, die UTC (UMT) Zeit ändert sich nicht. Aber unsere aktuelle Zeit ist Sommer/Winterzeit abhängig.
Im Winter (Normalzeit) UTC/GMT+1 und in der Sommerzeit UTC/GMT+2.
Die obige Funktion berücksichtigt dies.
Hallo
häh wieso jetzt einspruch?
Zitat von: MzKlMudie UTC (UMT) Zeit ändert sich nicht
Zitat von: daolix...heute heist das UTC.Diese Zeit ändert sich nicht durch Sommer/Winterzeit und oder Zeitzonen
Ich erkenn jetzt in den beiden Aussagen keinen Widerspruch, beide vermelden das selbe. Hab ich jetzt was nicht geblickt?
Hallo,
Du hast in meinem Zitat mein Aber ... unterschlagen. ;D
mein Einspruch galt für diese Zeile:
ZitatUnsere Zeitzone ist GMT + 1.
Es ist eben nicht GMT+1, sondern im Sommer ist unsere Localzeit GMT/UTC+2.
Diese Angabe galt jetzt eher der auch im normalen Sprachgebrauch verwendeten datumsunabhängigen Bestimmung der Zeitzone.
ZitatDu hast in meinem Zitat mein Aber ... unterschlagen
Stimmt das hab ich. Aba nicht nur das. ich ich habs auch nicht gelesen. auweia ;D
Hallo,
entschuldigt, wenn ich mich auch noch in eure Diskussion einbringe ...
Zitatim normalen Sprachgebrauch verwendeten datumsunabhängigen Bestimmung der Zeitzone
... im 'normalen Sprachgebrauch' heißt unsere
Zeitzone 'Central European Time' bzw. 'Mitteleuropäische Zeit' (CET/MEZ)
und zur Sommerzeit 'Mitteleuropäische Sommerzeit' bzw. 'Central European Summer Time' (MESZ/CEST/CEDT)
Wobei es ja völlig wurscht ist ob ich da jetzt wie MzKlMu (was ja auch mein Zugang ist) GMT nenne oder (bürokratensesselsichernd) UTC
ist diese eigentlich nichts anderes als ein weltweit gültiger unveränderbarer Referenzpunkt um die Unterschiede zu den einzelnen Zeitzonen zu bestimmen.
Da nun diese Zeitzonen aber unterschiedliche Lokalzeiten liefern ist es m.E. nicht unbedingt vorteilhaft die Berechnung zu fixieren.
SAP liefert eine Systemzeit, die vom Standort des/der Server abhängig ist - nach Angabe von 'boehnli01' nehme ich an, dass sich dieser direkt in der GMT befindet.
Zitat... im 'normalen Sprachgebrauch' heißt unsere Zeitzone 'Central European Time' bzw. 'Mitteleuropäische Zeit' (CET/MEZ)
und mir isses jetzt auch wurscht ob das Teil bürokratensesselsichernd CET oder MEZ genannt wird, für mich sind alle diese Bezeichnungen richtig. Wenn ich irgendwelche Zeitzonen bei der Installation angeben muss steht da CET, MEZ oder halt GMT+1.
Zitatist diese eigentlich nichts anderes als ein weltweit gültiger unveränderbarer Referenzpunkt um die Unterschiede zu den einzelnen Zeitzonen zu bestimmen.
...
Da nun diese Zeitzonen aber unterschiedliche Lokalzeiten liefern ist es m.E. nicht unbedingt vorteilhaft die Berechnung zu fixieren.
...
SAP kenn ich nur vom Namen her, und die Frage war ja "GMT auf lokale Zeit rechnen". Da UTC/GMT ja " ein weltweit gültiger unveränderbarer Referenzpunkt" ist können wir die Berechnung schon fixieren.
Evtl kann man bei SAP angeben welche Zeit (local oder UTC) gespeichert werden soll. Hilfreicher ist die UTC schon ( NTFS speicht auch nur die UTC) da sonst die Zeitzone mit gespeichert werden müsst, sprich will man verschiedene SAP-server abfragen muss man imma wissen wo das teil steht.
Hallo,
bitte meine Wortmeldung nicht als negative Kritik an den bisher getätigten Aussagen aufzufassen ;)
Zitatkönnen wir die Berechnung schon fixieren
Dem Sinn nach ja - da hast du natürlich auch zweifelsfrei recht.
Es kommt halt auch darauf an, ob nun diese ganze Anwendung nur an einem bestimmten Ort unter unveränderlichen Vorgaben/Parametern
ausgeführt wird oder eventuell auch an einem anderen Unternehmensstandort der eine geänderte Berechnung erforderlich macht.
Das wollte ich mit
Zitatnicht unbedingt vorteilhaft die Berechnung zu fixieren
ausdrücken.
M.W. verwendet SAP serverseitig UTC/GMT als Referenzzeit und konvertiert Anwendungsseitig nach der angegebenen Zeitzone.
Zitatwill man verschiedene SAP-server abfragen muss man imma wissen wo das teil steht
nicht unbedingt, da ja nach der 'clientseitig' angegebenen Zeitzone auf UTC bezogen konvertiert wird - wenn dieses als Vorgabe festgelegt wird.