Italian Problemi con Timezone e ora legale

giada

Member
Ciao a tutti,
ho un problema : da quando siamo passati all'ora solare la mia conversione da ticks a data formattata è rimasto alla vecchia ora (fa un ora in piu'), oggi ho provato ad usare

B4X:
Log(DateTime.GetTimeZoneOffsetAt(DateTime.Now))

ma mi restituisce 2, io mi aspettavo 1 ora che c'è l'ora solare e 2 quando c'era l'ora legale...

Dove sbaglio?
 

drgottjr

Expert
Licensed User
Longtime User
l'ora dovrebbe cambiare automaticamente se l'hai scelto nelle configurazioni del telefonino
 

drgottjr

Expert
Licensed User
Longtime User

giada

Member
io uso :
B4X:
Public Sub formattaOra(timestamp As String) As String
    
    Dim Ora As Long
    Dim dt As String
    
    Ora = timestamp
    
    DateTime.DateFormat = "dd/MM/yy"
    DateTime.TimeFormat = "HH:mm:ss"

    dt = DateTime.Date(Ora) & "  " & DateTime.Time(Ora)
    
    Return dt
    
End Sub

e fino all'altra settimana tutto ok, da ieri è rimasto all'ora legale e provando a vedere quello che c'è in giro ho trovato una funzione scritta da erel :
B4X:
Sub IsDaylightInEffect As Boolean
   Dim currentTimezone As Double = DateTime.TimeZoneOffset
   Dim t As Long = DateTime.Now
   For i = 0 To 11 Step 2
     If DateTime.GetTimeZoneOffsetAt(t) < currentTimezone Then Return True
     t = t + i * DateTime.TicksPerDay * 30
   Next
   Return False
End Sub

però da lo stesso risultato sia oggi che guardando un giorno di una settimana indietro
 

LucaMs

Expert
Licensed User
Longtime User
Modificando un esempio di Erel:

B4X:
    DateTime.DateFormat = "dd-MMM-yyyy HH:mm:ss z"
    Dim Now As Long = DateTime.Now
    Log(DateTime.Date(Now))
    Dim t As Long = DateTime.Dateparse("25-mar-2018 02:01:22" & " GMT")
    Log($"$DateTime{t}"$)
 

giada

Member
scusate alla fine ho trovato una setTimeZone in una parte di codice inserita da un mio collega..risolto
 
Top