diff --git a/src/ezic.erl b/src/ezic.erl index eecd4ed..950d967 100644 --- a/src/ezic.erl +++ b/src/ezic.erl @@ -11,28 +11,28 @@ localtime(TzName) -> - Now= erlang:universaltime(), + time(erlang:universaltime(), TzName). + +time(Datetime, TzName) -> + Zones= ezic_db:zones(TzName), % ?debug("All Zones: ~p", [Zones]), - CZone= ezic_zone:current(Now, Zones), + CZone= ezic_zone:current(Datetime, Zones), % ?debug("Current Zone: ~p", [CZone]), RuleName= CZone#zone.rule, Rules= ezic_db:rules(RuleName), % ?debug("All Rules: ~p", [Rules]), - CRule= ezic_rule:current(Now, Rules), + CRule= ezic_rule:current(Datetime, Rules), % ?debug("Current Rule: ~p", [CRule]), - OffsetSec= ezic_zone:offset_sec(CZone), DSTSec= ezic_rule:dst_sec(CRule), - % SecDiff= OffsetSec + DSTSec, - ?gs2dt(?dt2gs(Now) + SecDiff). - - + ?gs2dt(?dt2gs(Datetime) + SecDiff). + time2time(_DateTime, _FromTimeZone, _ToTimeZone) -> @@ -56,4 +56,4 @@ test() -> fun(TZ)-> io:format("~s: ~p~n", [TZ, localtime(TZ)]) end, - ["Asia/Tokyo", "America/New_York", "America/Los_Angeles", "America/Jamaica"]). + ["Asia/Tokyo", "America/New_York", "America/Los_Angeles", "America/Jamaica", "Australia/Adelaide"]). diff --git a/src/ezic_rule.erl b/src/ezic_rule.erl index 3070758..df12ba7 100644 --- a/src/ezic_rule.erl +++ b/src/ezic_rule.erl @@ -19,10 +19,11 @@ current(Now, Rules) -> +% newest first sort(R1, R2) -> T1= from_time(R1), T2= from_time(R2), - ezic_date:compare_datetimes(T1, T2). + ezic_date:compare_datetimes(T2, T1).