From 4b38a98507bbf8d93155a468dc83b35925070298 Mon Sep 17 00:00:00 2001 From: Fabian Gans Date: Wed, 19 Feb 2020 12:32:12 +0100 Subject: [PATCH] Add unit tests and a warning if time zone is not zero --- src/CFTime.jl | 6 ++++++ test/test_time.jl | 22 ++++++++++++++++++++++ 2 files changed, 28 insertions(+) diff --git a/src/CFTime.jl b/src/CFTime.jl index b6e4978..e4b1140 100644 --- a/src/CFTime.jl +++ b/src/CFTime.jl @@ -506,9 +506,15 @@ function parseDT(::Type{DT},str) where DT <: Union{DateTime,AbstractCFDateTime} timestr,tz = if occursin("+",timestr) ts,tz = split(timestr,"+") ts,tz + elseif occursin("-",timestr) + ts,tz = split(timestr,"-") + ts,string("-",tz) else timestr, "00:00" end + if !all(iszero(parse.(Int,split(tz,":")))) + @warn "Time zones are currently not supported by CFTime. Ignoring Time zone information: $(tz)" + end time_split = split(timestr,':') h_str, mi_str, s_str = diff --git a/test/test_time.jl b/test/test_time.jl index d2c258b..073162e 100644 --- a/test/test_time.jl +++ b/test/test_time.jl @@ -420,3 +420,25 @@ data = [0,1,2,3] dt = CFTime.timedecode(DateTime360Day,data,"days since 2000-01-01 00:00:00") data2 = CFTime.timeencode(dt,"days since 2000-01-01 00:00:00",DateTime360Day) @test data == data2 + +#issue #6 + +data = [0,1,2,3] +dt = CFTime.timedecode(DateTime,data,"days since 2000-01-01 00:00:00+00") +data2 = CFTime.timeencode(dt,"days since 2000-01-01 00:00:00+00",DateTime) +@test data == data2 + +data = [0,1,2,3] +dt = CFTime.timedecode(DateTime360Day,data,"days since 2000-01-01 00:00:00+00:00") +data2 = CFTime.timeencode(dt,"days since 2000-01-01 00:00:00+00:00",DateTime360Day) +@test data == data2 + +data = [0,1,2,3] +dt = CFTime.timedecode(DateTime,data,"days since 2000-01-01 00:00:00+01") +data2 = CFTime.timeencode(dt,"days since 2000-01-01 00:00:00+00",DateTime) +@test data == data2 + +data = [0,1,2,3] +dt = CFTime.timedecode(DateTime360Day,data,"days since 2000-01-01 00:00:00-01:00") +data2 = CFTime.timeencode(dt,"days since 2000-01-01 00:00:00+00:00",DateTime360Day) +@test data == data2