Aby przedstawić godzinę, to tak naprawdę potrzebujemy ilości sekund(tj. 5 cyfr po przecinku - zakładamy, że nie bawimy się w milisekundy).
Okazuje się, że czasami godzina np: 15:00:00 może być reprezentowana jako:
0,625005
a czasem nawet:
0,625011
(godzina brana z komponentu DateTimePicker)
Teoretycznie różnicy nie ma. W praktyce jest i to o całą sekundę. Czemu? Ponieważ, jeśli zamienimy drugi przykład na czas Unixowy za pomocą DateTimeToUnix, to uzyskamy już czas zwiększony o jedną sekundę.
Innymi słowy:
UnixToDateTime(dateTimeToUnix(0.625011)) <> 0.625011
Dlaczego tak się dzieje i czy można temu zaradzić w prosty sposób - bez używania decode/encodeDateTime?