[Gambas-user] Syntax of dates represented in a string

Benoit Minisini benoit.minisini at gambas-basic.org
Thu Nov 17 02:13:59 CET 2022


To fix the difficulties encountered by Claus and others, I added in the 
last commit the ability to explicitly specify the timezone in a date 
inside a string.

For example (in english format):

"11/17/2022 01:41 UTC+1"

It should help those that don't get the difference between functions 
that use UTC implicitly, and functions that use local timezone implicitly.

With that, in French localization (UTC+1), you will have:

Print CDate("11/17/2022 01:41")
17/11/2022 02:41

Print Val("17/11/2022 01:41")
17/11/2022 01:41

Print CDate("11/17/2022 01:41 UTC")
17/11/2022 02:41

Print Val("17/11/2022 01:41 UTC")
17/11/2022 02:41

Print CDate("11/17/2022 01:41 UTC+1")
17/11/2022 01:41

Print Val("17/11/2022 01:41 UTC+1")
17/11/2022 01:41

To understand the printed result, remember that 'Print' internally uses 
'Str()', that converts the date to a string using the current 
localization and the local timezone.

Note that you can use "GMT" instead of "UTC", and there is still no 
function to format a date at a specific timezone other than the local one.

The other problem raised by Bruce (BB <adamnt42 at gmail.com>) is another 
beast: in a few words, how to know which timezone must be used at a 
specific date.

The data exists, but apparently the C library does not have any API for 

Moreover, the problem can be circular: to define the specific date, you 
may need the timezone you are looking for.

So I don't think there is a solution for that at the moment.


Benoît Minisini.

More information about the User mailing list