diff --git a/src/lune/builtins/datetime/builder.rs b/src/lune/builtins/datetime/builder.rs index 5f963f5..eb62621 100644 --- a/src/lune/builtins/datetime/builder.rs +++ b/src/lune/builtins/datetime/builder.rs @@ -174,7 +174,6 @@ impl<'lua> FromLua<'lua> for DateTimeBuilder { match value { LuaValue::Table(t) => Ok(Self::default() .with_year(t.get("year")?) - // FIXME: Months are offset by two, months start on march for some reason... .with_month( (match t.get("month")? { LuaValue::String(str) => Ok(str.to_str()?.parse::().or(Err( diff --git a/src/lune/builtins/datetime/date_time.rs b/src/lune/builtins/datetime/date_time.rs index 0428593..94c0990 100644 --- a/src/lune/builtins/datetime/date_time.rs +++ b/src/lune/builtins/datetime/date_time.rs @@ -142,9 +142,11 @@ impl DateTime { where T: ToString, { - let time = - ChronoDateTime::parse_from_str(iso_date.to_string().as_str(), "%Y-%m-%dT%H:%M:%SZ") - .ok()?; + let time = ChronoDateTime::parse_from_str( + format!("{}{}", iso_date.to_string(), "UTC+0000").as_str(), + "%Y-%m-%dT%H:%M:%SZUTC%z", + ) + .ok()?; Some(Self { unix_timestamp: time.timestamp(), diff --git a/src/lune/builtins/datetime/mod.rs b/src/lune/builtins/datetime/mod.rs index c0a06cb..1a28378 100644 --- a/src/lune/builtins/datetime/mod.rs +++ b/src/lune/builtins/datetime/mod.rs @@ -10,7 +10,6 @@ use self::{ use crate::lune::util::TableBuilder; // TODO: Proper error handling and stuff -// FIX: DateTime::from_iso_date is broken // FIX: fromUnixTimestamp calculation is broken pub fn create(lua: &'static Lua) -> LuaResult { @@ -104,8 +103,6 @@ impl LuaUserData for DateTime { } fn add_methods<'lua, M: LuaUserDataMethods<'lua, Self>>(methods: &mut M) { - methods.add_method("now", |_, _this, ()| Ok(DateTime::now())); - methods.add_method("toIsoDate", |_, this, ()| Ok(this.to_iso_date())); methods.add_method(