[Gambas-user] Date(Now) with time component under Ubuntu?
g4mba5 at gmail.com
Tue Dec 4 12:56:04 CET 2018
Le 04/12/2018 à 11:23, Rolf-Werner Eilert a écrit :
> To give you an idea of the problem, here is a code snippet from this
> second application, it is in Form_Open:
> t$ = Date(Now)
> heute = String.Mid(t$, 4, 2) & "-" & String.Left(t$, 2) & "-" &
> String.Mid(t$, 7, 4)
> DerTag.Tag = Date(Now)
> DerTag.Text = "heute, " & Wochentag(Date(Now)) & ", " &
> Replace(heute, "-", ".")
> Today (4th December)
> - t$ becomes "12.03.2018 23:00:00"
> - 'heute' of course becomes "12-03-2018"
> Now it's curious:
> - DerTag.Tag becomes "04.12.2018 00:00:00" i. e. day and hour +1 !!
> And of course, it goes wrong here:
> - DerTag.Text becomes "heute, Dienstag, 03.12.2018"
> How to solve this mess???
Read carefully the documentation about Date(), avoid implicit conversion
from Date to String, Read carefully the documentation about Print,
CStr() and Str(), and just don't mix local and universal date
For example, let's analyze the following expression:
t$ = Date(Now) ' Assuming that t$ is a String variable
Now -> Return a Date value corrresponding to the current date & time.
Date(Now) -> Return the date part, in the current localization (i.e. the
current timezone). It means that the time part is set to 00:00:00, but
in the current timezone.
t$ = Date(Now) -> Assign the previous date value to a string variable,
hence applying first the automatic conversion from Date to String. So it
t$ = CStr(Date(Now))
CStr() converts the date into a UTC date representation, not in your
local representation. So you won't see a pure date: the time is shifted
according to your timezone.
For the other expressions, I can't tell you, you don't give any
information about the functions and variable you use.
And I guess it worked before because you used a Gambas version where you
had a bug in date / string conversion. I can't say more without you
giving more details.
More information about the User