mirror of
https://github.com/vlang/v.git
synced 2023-08-10 21:13:21 +03:00
time: add more UTC/local time conversion functions, make Time.format_rfc3339 more stable
This commit is contained in:
48
vlib/time/utc_vs_local_time_test.v
Normal file
48
vlib/time/utc_vs_local_time_test.v
Normal file
@ -0,0 +1,48 @@
|
||||
import time
|
||||
|
||||
fn test_as_utc() {
|
||||
t := time.now()
|
||||
u := t.as_utc()
|
||||
dump(u)
|
||||
assert u.is_local == false
|
||||
}
|
||||
|
||||
fn test_as_local() {
|
||||
t := time.now()
|
||||
l := t.as_local()
|
||||
dump(l)
|
||||
assert l.is_local == true
|
||||
}
|
||||
|
||||
fn test_local_to_utc() {
|
||||
n := time.now()
|
||||
u := n.local_to_utc()
|
||||
dump(u)
|
||||
o := time.offset()
|
||||
dump(o)
|
||||
if o != 0 {
|
||||
assert n != u
|
||||
back := u.utc_to_local() // convert it back to local time
|
||||
assert n == back, 'the converted original local->utc->local time, should be the same as the original local time'
|
||||
|
||||
double_u := u.local_to_utc()
|
||||
assert u == double_u, 'calling t.local_to_utc().local_to_utc() several times, should not change the time'
|
||||
}
|
||||
}
|
||||
|
||||
fn test_utc_to_local() {
|
||||
z := time.Time{}
|
||||
assert z.is_local == false, 'simply constructing a time instance, should construct an UTC time'
|
||||
l := z.utc_to_local()
|
||||
dump(l)
|
||||
o := time.offset()
|
||||
dump(o)
|
||||
if o != 0 {
|
||||
assert z != l, 'when there is a time offset, the local time and the utc time should be different'
|
||||
assert l == l.utc_to_local(), 'converting a local to local time should not change the time'
|
||||
assert l == l.utc_to_local().utc_to_local(), 'double converting a local to local time to local time, should not change the time'
|
||||
}
|
||||
sz := z.format_rfc3339()
|
||||
dump(sz)
|
||||
assert sz == '0000-00-00T00:00:00.000Z'
|
||||
}
|
Reference in New Issue
Block a user