1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/vlib/time
2023-07-12 09:40:16 +03:00
..
misc
chrono_test.v
chrono.c.v
chrono.v
custom_format_test.v
date_time_parser.v
duration_test.v
format.v
operator_test.v
operator.v
parse_test.v
parse.c.v time: small cleanup of parse_iso8601 comments, make the C.strftime declaratione forwards compatible 2023-06-24 08:01:57 +03:00
parse.js.v
parse.v
private_test.v
README.md
relative_test.v
stopwatch_test.v
stopwatch.v
time_addition_test.v
time_darwin.c.v
time_format_test.v
time_js.js.v
time_linux.c.v
time_nix.c.v picoev, picohttparser: reimplement in V (#18506) 2023-07-12 09:40:16 +03:00
time_solaris.c.v
time_test.v
time_windows.c.v
time.c.v parser: remove hardcoded check for function calls for C.stat, C.sigaction, etc (#18535) 2023-06-24 08:03:12 +03:00
time.js.v
time.v vweb: document live reload 2023-07-08 19:29:27 +03:00
unix.v
utc_vs_local_time_test.v
Y2K38_test.v

Description:

V's time module, provides utilities for working with time and dates:

  • parsing of time values expressed in one of the commonly used standard time/date formats
  • formatting of time values
  • arithmetic over times/durations
  • converting between local time and UTC (timezone support)
  • stop watches for accurately measuring time durations
  • sleeping for a period of time

Examples:

You can see the current time. See:

import time

println(time.now())

time.Time values can be compared, see:

import time

const time_to_test = time.Time{
	year: 1980
	month: 7
	day: 11
	hour: 21
	minute: 23
	second: 42
	microsecond: 123456
	unix: 332198622
}

println(time_to_test.format())

assert '1980-07-11 21:23' == time_to_test.format()
assert '1980-07-11 21:23:42' == time_to_test.format_ss()
assert '1980-07-11 21:23:42.123' == time_to_test.format_ss_milli()
assert '1980-07-11 21:23:42.123456' == time_to_test.format_ss_micro()

You can also parse strings to produce time.Time values, see:

import time

s := '2018-01-27 12:48:34'
t := time.parse(s) or { panic('failing format: ${s} | err: ${err}') }
println(t)
println(t.unix)

V's time module also has these parse methods:

fn parse(s string) !Time
fn parse_iso8601(s string) !Time
fn parse_rfc2822(s string) !Time
fn parse_rfc3339(s string) !Time

Another very useful feature of the time module is the stop watch, for when you want to measure short time periods, elapsed while you executed other tasks. See:

import time

fn do_something() {
	time.sleep(510 * time.millisecond)
}

fn main() {
	sw := time.new_stopwatch()
	do_something()
	println('Note: do_something() took: ${sw.elapsed().milliseconds()} ms')
}