pub struct DateTime {
pub inner: OffsetDateTime,
}Expand description
Log timestamp type.
Parse using FromStr impl.
Format using the Display trait.
Convert timestamp into/from SystemTime to use.
Supports compare and sorting.
Fields§
§inner: OffsetDateTimeImplementations§
Source§impl DateTime
impl DateTime
Sourcepub fn set_offset(self, offset_sec: i32) -> DateTime
pub fn set_offset(self, offset_sec: i32) -> DateTime
set offset
let mut dt = fastdate::DateTime::utc();
dt = dt.set_offset(fastdate::offset_sec());Sourcepub fn add_sub_sec(self, sec: i64) -> Self
pub fn add_sub_sec(self, sec: i64) -> Self
add/sub sec
Sourcepub fn unix_timestamp(&self) -> i64
pub fn unix_timestamp(&self) -> i64
unix_timestamp sec
Sourcepub fn unix_timestamp_micros(&self) -> i64
pub fn unix_timestamp_micros(&self) -> i64
unix_timestamp micros
Sourcepub fn unix_timestamp_millis(&self) -> i64
pub fn unix_timestamp_millis(&self) -> i64
unix_timestamp millis
Sourcepub fn unix_timestamp_nano(&self) -> i128
pub fn unix_timestamp_nano(&self) -> i128
unix_timestamp nano
Sourcepub fn from_timestamp(sec: i64) -> DateTime
pub fn from_timestamp(sec: i64) -> DateTime
from timestamp sec
Sourcepub fn from_timestamp_micros(micros: i64) -> DateTime
pub fn from_timestamp_micros(micros: i64) -> DateTime
from timestamp micros
Sourcepub fn from_timestamp_millis(ms: i64) -> DateTime
pub fn from_timestamp_millis(ms: i64) -> DateTime
from timestamp millis
Sourcepub fn from_timestamp_nano(nano: i128) -> DateTime
pub fn from_timestamp_nano(nano: i128) -> DateTime
from timestamp nano
Sourcepub fn format(&self, fmt: &str) -> String
pub fn format(&self, fmt: &str) -> String
format support token = [“YYYY”,“MM”,“DD”,“hh”,“mm”,“ss”,“.000000”,“.000000000”,“+00:00”]
let dt = fastdate::DateTime::from((
fastdate::Date {
day: 1,
mon: 1,
year: 2000,
},
fastdate::Time {
nano: 123456000,
sec: 11,
minute: 1,
hour: 1,
})).set_offset(8 * 60 * 60);
println!("{}",dt.format("YYYY-MM-DD hh:mm:ss"));
println!("{}",dt.format("YYYY-MM-DD hh:mm:ss.000000"));
println!("{}",dt.format("YYYY-MM-DD hh:mm:ss.000000+00:00"));
println!("{}",dt.format("YYYY/MM/DD/hh/mm/ss/.000000/+00:00"));
println!("{}",dt.format("YYYY-MM-DD/hh/mm/ss"));
Sourcepub fn parse(format: &str, arg: &str) -> Result<DateTime, Error>
pub fn parse(format: &str, arg: &str) -> Result<DateTime, Error>
parse an string by format. format support token = [“YYYY”,“MM”,“DD”,“hh”,“mm”,“ss”,“.000000”,“+00:00”,“Z”] format str must be example: parse nano
fastdate::DateTime::parse("YYYY-MM-DD hh:mm:ss.000000000Z", "2022-12-13 11:12:14.123456789Z").unwrap();
fastdate::DateTime::parse("YYYY-MM-DD hh:mm:ss.000000000+00:00", "2022-12-13 11:12:14.123456789+06:00").unwrap();or time zone(UTC+Hour)
fastdate::DateTime::parse("YYYY-MM-DD hh:mm:ss.000000+00:00", "2022-12-13 11:12:14.123456+06:00").unwrap();
fastdate::DateTime::parse("YYYY-MM-DD hh:mm:ss.000000+00:00", "2022-12-13 11:12:14.123456-03:00").unwrap();or time zone(UTC)
fastdate::DateTime::parse("YYYY-MM-DD hh:mm:ss.000000Z", "2022-12-13 11:12:14.123456Z").unwrap();parse local time
fastdate::DateTime::parse("YYYY-MM-DD hh:mm:ss.000000","2022-12-13 11:12:14.123456").unwrap();or any position
fastdate::DateTime::parse("YYYY-MM-DD,hh:mm:ss.000000","2022-12-13,11:12:14.123456").unwrap();or time zone(UTC)
fastdate::DateTime::parse("YYYY-MM-DD hh:mm:ss.000000Z", "2022-12-13 11:12:14.123456Z").unwrap();or time zone(UTC+Hour)
fastdate::DateTime::parse("YYYY-MM-DD hh:mm:ss.000000+00:00", "2022-12-13 11:12:14.123456+08:00").unwrap();pub fn nano(&self) -> u32
pub fn ms(&self) -> u16
Sourcepub fn offset_hms(&self) -> (i8, i8, i8)
pub fn offset_hms(&self) -> (i8, i8, i8)
offset_hms: hour,minute,sec
pub fn from_system_time(s: SystemTime, offset: i32) -> Self
Sourcepub fn display_stand(&self) -> String
pub fn display_stand(&self) -> String
stand “0000-00-00 00:00:00.000000000”
Sourcepub fn display(&self, zone: bool) -> String
pub fn display(&self, zone: bool) -> String
RFC3339 “0000-00-00T00:00:00.000000000Z” RFC3339 “0000-00-00T00:00:00.000000000+00:00:00”
Sourcepub fn do_display(&self, buf: &mut [u8; 38], add_zone: bool) -> usize
pub fn do_display(&self, buf: &mut [u8; 38], add_zone: bool) -> usize
let mut buf: [u8; 38] = *b“0000-00-00T00:00:00.000000000+00:00:00“; than print this: RFC3339 “0000-00-00T00:00:00.000000000Z” RFC3339 “0000-00-00T00:00:00.000000000+00:00:00”