data_faking/data/datetime/
datetime_naive.rs1use chrono::{NaiveDateTime};
2use wasm_bindgen::prelude::*;
3
4use super::date_naive::gen_date_naive;
5use super::time_naive::{gen_time_naive, gen_time_naive_micro, gen_time_naive_milli, gen_time_naive_nano};
6
7const DATETIME_FORMAT: &str = "%Y-%m-%d";
8const DATETIME_FORMAT_MILLI: &str = "%Y-%m-%d %H:%M:%S%.3f";
9const DATETIME_FORMAT_MICRO: &str = "%Y-%m-%d %H:%M:%S%.6f";
10const DATETIME_FORMAT_NANO: &str = "%Y-%m-%d %H:%M:%S%.9f";
11
12#[wasm_bindgen]
13pub fn datetime_naive() -> String {
14 let ndt = gen_datetime_naive();
15 if ndt.is_none() {
16 return "".to_string();
17 }
18 ndt.unwrap().format(DATETIME_FORMAT).to_string()
19}
20
21#[wasm_bindgen]
22pub fn datetime_naive_milli() -> String {
23 let ndt = gen_datetime_naive_milli();
24 if ndt.is_none() {
25 return "".to_string();
26 }
27 ndt.unwrap().format(DATETIME_FORMAT_MILLI).to_string()
28}
29
30#[wasm_bindgen]
31pub fn datetime_naive_micro() -> String {
32 let ndt = gen_datetime_naive_micro();
33 if ndt.is_none() {
34 return "".to_string();
35 }
36 ndt.unwrap().format(DATETIME_FORMAT_MICRO).to_string()
37}
38
39#[wasm_bindgen]
40pub fn datetime_naive_nano() -> String {
41 let ndt = gen_datetime_naive_nano();
42 if ndt.is_none() {
43 return "".to_string();
44 }
45 ndt.unwrap().format(DATETIME_FORMAT_NANO).to_string()
46}
47
48pub fn gen_datetime_naive() -> Option<NaiveDateTime> {
49 let date = gen_date_naive();
50 if date.is_none() {
51 return None;
52 }
53
54 let time = gen_time_naive();
55 if time.is_none() {
56 return None;
57 }
58
59 Some(NaiveDateTime::new(date.unwrap(), time.unwrap()))
60}
61
62pub fn gen_datetime_naive_milli() -> Option<NaiveDateTime> {
63 let date = gen_date_naive();
64 if date.is_none() {
65 return None;
66 }
67
68 let time = gen_time_naive_milli();
69 if time.is_none() {
70 return None;
71 }
72
73 Some(NaiveDateTime::new(date.unwrap(), time.unwrap()))
74}
75
76pub fn gen_datetime_naive_micro() -> Option<NaiveDateTime> {
77 let date = gen_date_naive();
78 if date.is_none() {
79 return None;
80 }
81
82 let time = gen_time_naive_micro();
83 if time.is_none() {
84 return None;
85 }
86
87 Some(NaiveDateTime::new(date.unwrap(), time.unwrap()))
88}
89
90pub fn gen_datetime_naive_nano() -> Option<NaiveDateTime> {
91 let date = gen_date_naive();
92 if date.is_none() {
93 return None;
94 }
95
96 let time = gen_time_naive_nano();
97 if time.is_none() {
98 return None;
99 }
100
101 Some(NaiveDateTime::new(date.unwrap(), time.unwrap()))
102}