fn gen_date(fmt: &str) -> String {
let dt = chrono::Local::now();
let timestamp = dt.format(fmt);
format!("{}", timestamp)
}
pub fn date() -> String {
gen_date("%Y-%m-%d")
}
pub fn date_slashes() -> String {
gen_date("%Y/%m/%d")
}
pub fn date_no_seps() -> String {
gen_date("%Y%m%d")
}
pub fn datetime() -> String {
gen_date("%Y-%m-%dT%H:%M:%S")
}
pub fn datetime_pretty() -> String {
gen_date("%Y/%m/%d %H:%M:%S")
}
pub fn datetime_no_seps() -> String {
gen_date("%Y%m%d%H%M%S")
}
pub fn time() -> String {
gen_date("%H:%M:%S")
}
pub fn time_hyphen() -> String {
gen_date("%H-%M-%S")
}
pub fn time_no_seps() -> String {
gen_date("%H%M%S")
}
pub fn time_no_secs() -> String {
gen_date("%H:%M")
}
pub fn time_no_secs_hyphen() -> String {
gen_date("%H-%M")
}
pub fn time_no_secs_no_seps() -> String {
gen_date("%H%M")
}
pub fn datetime_custom(fmt: &str) -> String {
gen_date(fmt)
}
mod tests {
#[allow(unused_imports)]
use super::*;
#[test]
fn test_date() {
assert_eq!(date(), gen_date("%Y-%m-%d"));
}
#[test]
fn test_date_slashes() {
assert_eq!(date_slashes(), gen_date("%Y/%m/%d"));
}
#[test]
fn test_date_no_seps() {
assert_eq!(date_no_seps(), gen_date("%Y%m%d"));
}
#[test]
fn test_datetime() {
assert_eq!(datetime(), gen_date("%Y-%m-%dT%H:%M:%S"));
}
#[test]
fn test_datetime_pretty() {
assert_eq!(datetime_pretty(), gen_date("%Y/%m/%d %H:%M:%S"));
}
#[test]
fn test_datetime_no_seps() {
assert_eq!(datetime_no_seps(), gen_date("%Y%m%d%H%M%S"));
}
#[test]
fn test_time() {
assert_eq!(time(), gen_date("%H:%M:%S"));
}
#[test]
fn test_time_hyphen() {
assert_eq!(time_hyphen(), gen_date("%H-%M-%S"));
}
#[test]
fn test_time_no_seps() {
assert_eq!(time_no_seps(), gen_date("%H%M%S"));
}
#[test]
fn test_time_no_secs() {
assert_eq!(time_no_secs(), gen_date("%H:%M"));
}
#[test]
fn test_time_no_secs_hyphen() {
assert_eq!(time_no_secs_hyphen(), gen_date("%H-%M"));
}
#[test]
fn test_time_no_secs_no_seps() {
assert_eq!(time_no_secs_no_seps(), gen_date("%H%M"));
}
}