diff --git a/src/epochs.jl b/src/epochs.jl index d25d853..181d3f1 100644 --- a/src/epochs.jl +++ b/src/epochs.jl @@ -116,6 +116,10 @@ function Base.convert(::Type{Epoch}, dt::TimeType) return Epoch(ms_since_unix + EPOCH_OFFSET_MILLISECONDS) end +for t in (:Epoch, :Epoch16, :TT2000) + @eval Base.convert(::Type{$t}, dt::$t) = dt +end + for f in (:year, :month, :day, :hour, :minute, :second, :millisecond) @eval Dates.$f(epoch::CDFDateTime) = Dates.$f(DateTime(epoch)) end diff --git a/test/epochs_test.jl b/test/epochs_test.jl index 3f525c7..08d8969 100644 --- a/test/epochs_test.jl +++ b/test/epochs_test.jl @@ -26,6 +26,8 @@ end @test floor(TT2000(0), Minute(1)) == DateTime(2000, 1, 1, 11, 58) @test TT2000(0) + Minute(1) == TT2000(60_000_000_000) + @test TT2000(TT2000(663940869211021568)) == TT2000(663940869211021568) + @test string(TT2000(0)) == "2000-01-01T11:58:55.816" @test TT2000(0) == TT2000(0) |> bswap @test TT2000(0) == DateTime("2000-01-01T11:58:55.816")