Add: datetime util

This commit is contained in:
itiB
2021-12-07 00:11:34 +09:00
parent cc7697a319
commit e09cfb7231
2 changed files with 26 additions and 17 deletions

View File

@@ -14,6 +14,7 @@ use std::io::prelude::*;
use std::io::{BufRead, BufReader};
use std::str;
use std::string::String;
use chrono::{DateTime, TimeZone, Utc};
pub fn concat_selection_key(key_list: &Vec<String>) -> String {
return key_list
@@ -93,6 +94,29 @@ pub fn get_event_id_key() -> String {
return "Event.System.EventID".to_string();
}
pub fn get_event_time() -> String {
return "Event.System.TimeCreated_attributes.SystemTime".to_string();
}
pub fn str_time_to_datetime(system_time_str: &str) -> Option<DateTime<Utc>> {
if system_time_str.is_empty() {
return Option::None;
}
let rfc3339_time = DateTime::parse_from_rfc3339(system_time_str);
if rfc3339_time.is_err() {
return Option::None;
}
let datetime = Utc
.from_local_datetime(&rfc3339_time.unwrap().naive_utc())
.single();
if datetime.is_none() {
return Option::None;
} else {
return Option::Some(datetime.unwrap());
}
}
/// serde:Valueの型を確認し、文字列を返します。
pub fn get_serde_number_to_string(value: &serde_json::Value) -> Option<String> {
if value.is_string() {