diff --git a/src/types/alpaca/api/incoming/calendar.rs b/src/types/alpaca/api/incoming/calendar.rs index 8c8118a..8879886 100644 --- a/src/types/alpaca/api/incoming/calendar.rs +++ b/src/types/alpaca/api/incoming/calendar.rs @@ -1,7 +1,7 @@ use crate::{ config::ALPACA_API_URL, types::{self, alpaca::api::outgoing}, - utils::de, + utils::{de, time::EST_OFFSET}, }; use backoff::{future::retry_notify, ExponentialBackoff}; use governor::DefaultDirectRateLimiter; @@ -25,8 +25,8 @@ impl From for types::Calendar { fn from(calendar: Calendar) -> Self { Self { date: calendar.date, - open: OffsetDateTime::new_utc(calendar.date, calendar.open), - close: OffsetDateTime::new_utc(calendar.date, calendar.close), + open: OffsetDateTime::new_in_offset(calendar.date, calendar.open, *EST_OFFSET), + close: OffsetDateTime::new_in_offset(calendar.date, calendar.close, *EST_OFFSET), } } } diff --git a/src/types/alpaca/api/outgoing/calendar.rs b/src/types/alpaca/api/outgoing/calendar.rs index a129c30..aa82236 100644 --- a/src/types/alpaca/api/outgoing/calendar.rs +++ b/src/types/alpaca/api/outgoing/calendar.rs @@ -24,7 +24,7 @@ impl Default for Calendar { fn default() -> Self { Self { start: OffsetDateTime::UNIX_EPOCH, - end: OffsetDateTime::from_unix_timestamp(MAX_TIMESTAMP).unwrap(), + end: *MAX_TIMESTAMP, date_type: DateType::Trading, } } diff --git a/src/utils/time.rs b/src/utils/time.rs index faeb22f..7d42c27 100644 --- a/src/utils/time.rs +++ b/src/utils/time.rs @@ -1,10 +1,16 @@ +use lazy_static::lazy_static; use std::time::Duration; -use time::OffsetDateTime; +use time::{OffsetDateTime, UtcOffset}; pub const ONE_SECOND: Duration = Duration::from_secs(1); pub const ONE_MINUTE: Duration = Duration::from_secs(60); pub const FIFTEEN_MINUTES: Duration = Duration::from_secs(60 * 15); -pub const MAX_TIMESTAMP: i64 = 253_402_300_799; + +lazy_static! { + pub static ref MAX_TIMESTAMP: OffsetDateTime = + OffsetDateTime::from_unix_timestamp(253_402_300_799).unwrap(); + pub static ref EST_OFFSET: UtcOffset = UtcOffset::from_hms(-5, 0, 0).unwrap(); +} pub fn last_minute() -> OffsetDateTime { let now_timestamp = OffsetDateTime::now_utc().unix_timestamp();