From 8f23accc4eae8df81d12f2f95cfab7943584b96c Mon Sep 17 00:00:00 2001 From: Delyan Angelov Date: Tue, 21 Jul 2020 11:58:33 +0300 Subject: [PATCH] time: add .format_ss_milli and .format_ss_micro methods --- vlib/sqlite/sqlite.v | 5 ++++- vlib/time/format.v | 16 ++++++++++++++++ vlib/time/time.v | 2 ++ vlib/time/time_test.v | 11 +++++++++++ 4 files changed, 33 insertions(+), 1 deletion(-) diff --git a/vlib/sqlite/sqlite.v b/vlib/sqlite/sqlite.v index d3667ebc5d..f0eb91e77c 100644 --- a/vlib/sqlite/sqlite.v +++ b/vlib/sqlite/sqlite.v @@ -24,6 +24,10 @@ mut: conn &C.sqlite3 } +pub fn (db DB) str() string { + return 'sqlite.DB{ conn: ' + ptr_str(db.conn) + ' }' +} + pub struct Row { pub mut: vals []string @@ -145,4 +149,3 @@ pub fn (db DB) exec_param(query string, param string) []Row { pub fn (db DB) insert(x T) { } - diff --git a/vlib/time/format.v b/vlib/time/format.v index 409e4d98fd..c53b9648df 100644 --- a/vlib/time/format.v +++ b/vlib/time/format.v @@ -13,6 +13,16 @@ pub fn (t Time) format_ss() string { return t.get_fmt_str(.hyphen, .hhmmss24, .yyyymmdd) } +// format_ss_milli returns a date string in "YYYY-MM-DD HH:MM:SS.123" format (24h). +pub fn (t Time) format_ss_milli() string { + return t.get_fmt_str(.hyphen, .hhmmss24_milli, .yyyymmdd) +} + +// format_ss_micro returns a date string in "YYYY-MM-DD HH:MM:SS.123456" format (24h). +pub fn (t Time) format_ss_micro() string { + return t.get_fmt_str(.hyphen, .hhmmss24_micro, .yyyymmdd) +} + // hhmm returns a date string in "HH:MM" format (24h). pub fn (t Time) hhmm() string { return t.get_fmt_time_str(.hhmm24) @@ -97,6 +107,12 @@ pub fn (t Time) get_fmt_time_str(fmt_time FormatTime) string { .hhmmss24{ '${t.hour:02d}:${t.minute:02d}:${t.second:02d}' } + .hhmmss24_milli{ + '${t.hour:02d}:${t.minute:02d}:${t.second:02d}.${(t.microsecond/1000):03d}' + } + .hhmmss24_micro{ + '${t.hour:02d}:${t.minute:02d}:${t.second:02d}.${t.microsecond:06d}' + } else { 'unknown enumeration $fmt_time'} } diff --git a/vlib/time/time.v b/vlib/time/time.v index 76cd94e67e..ea7021aa32 100644 --- a/vlib/time/time.v +++ b/vlib/time/time.v @@ -54,6 +54,8 @@ pub enum FormatTime { hhmm24 hhmmss12 hhmmss24 + hhmmss24_milli + hhmmss24_micro no_time } diff --git a/vlib/time/time_test.v b/vlib/time/time_test.v index 1b32664be8..ae220129f0 100644 --- a/vlib/time/time_test.v +++ b/vlib/time/time_test.v @@ -8,6 +8,7 @@ const ( hour: 21 minute: 23 second: 42 + microsecond: 123456 unix: 332198622 } ) @@ -87,6 +88,16 @@ fn test_format_ss() { assert '11.07.1980 21:23:42' == time_to_test.get_fmt_str(.dot, .hhmmss24, .ddmmyyyy) } +fn test_format_ss_milli() { + assert '11.07.1980 21:23:42.123' == time_to_test.get_fmt_str(.dot, .hhmmss24_milli, .ddmmyyyy) + assert '1980-07-11 21:23:42.123' == time_to_test.format_ss_milli() +} + +fn test_format_ss_micro() { + assert '11.07.1980 21:23:42.123456' == time_to_test.get_fmt_str(.dot, .hhmmss24_micro, .ddmmyyyy) + assert '1980-07-11 21:23:42.123456' == time_to_test.format_ss_micro() +} + fn test_smonth() { month_names := ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']