[Gambas-user] Best way converting dates into strings forth and back

Rolf-Werner Eilert rwe-sse at osnanet.de
Fri Dec 10 12:30:32 CET 2021


Am 10.12.21 um 11:18 schrieb Martín Belmonte:
> El 10/12/21 a las 10:38, Rolf-Werner Eilert escribió:
>> would have to convert these dates into some kind of string, and back 
>> into Date when loading the file(s).
>> > So my question is, which way is the easiest and fastest to achieve 
>> this? 
> In the case of saving a date to some storage media I suggest always 
> using a text string, because dates are subject to various 
> interpretations, such as the method used in shrimp, system time, 
> location etc.
> Then the commonly accepted date format that does not lend itself to 
> confusion is ISO, specifically:
> 2021-12-10T11:17:01
> I therefore propose two functions to retrieve and save dates:
> 
> Static Public Function TimeText(dTime As Date) As String
> 
>    Return Format(dTime, "yyyy-mm-ddThh:nn:ss")
> 
> End
> 
> Static Public Function TimeDate(sTime As String) As Date
> 
>    Dim sDate As String
>    Dim aDate As Integer[]
>    Dim xDate As Date
>    Dim iLen As Integer
> 
>    sTime = Upper(sTime)
> 
>    If InStr(sTime, "T") > 0 Then
> 
>      Select Len(Split(sTime, "T")[1])
>        Case 5   ' not seconds
>          iLen = 16
>        Case 8   ' include seconds
>          iLen = 19
>      End Select
> 
>      If InStr(sTime, "-") > 0 And InStr(sTime, ":") > 0 And Len(sTime) = 
> iLen Then
>        sDate = Replace(sTime, "T", "\t")
>        sDate = Replace(sDate, "-", "\t")
>        sDate = Replace(sDate, ":", "\t")
>        aDate = Split(sDate, "\t")
>        xDate = Date(aDate[0], aDate[1], aDate[2], aDate[3], aDate[4], 
> aDate[5])
>      Endif
>    Endif
> 
>    Return xDate
> 
> End
> 
> ----[ http://gambaswiki.org/wiki/doc/netiquette ]----
> 

Thank you very much Martin, such functions are always useful. 
Interesting to see your solutions.

Regards
Rolf


More information about the User mailing list