# Convert time interval to seconds?

**URL:** <https://discourse.julialang.org/t/convert-time-interval-to-seconds/3806>\
**Category:** New to Julia\
**Created:** [May 19, 2017, 11:53am UTC](https://discourse.julialang.org/t/convert-time-interval-to-seconds/3806 "2017-05-19T11:53:15Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![ndbecker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ndbecker/32/10829_2.png) [@ndbecker](https://discourse.julialang.org/u/ndbecker)\
**Post date:** [May 19, 2017, 11:53am UTC](https://discourse.julialang.org/t/convert-time-interval-to-seconds/3806/1 "2017-05-19T11:53:17Z")

</div>

```julia
T0 = now()
T = now() - T0
typeof(T)
Base.Dates.Millisecond

```

If I want to convert to seconds, I can do

```julia
convert(Float64, (now() - T0).value)/1000

```

Well, that’s ugly, and depends on knowing that the time period happens to be milliseconds. Is there a better way?

---

<div class="post-metadata">

**Author:** ![kristoffer.carlsson](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/kristoffer.carlsson/32/22_2.png) [@kristoffer.carlsson](https://discourse.julialang.org/u/kristoffer.carlsson)\
**Post date:** [May 19, 2017, 12:20pm UTC](https://discourse.julialang.org/t/convert-time-interval-to-seconds/3806/2 "2017-05-19T12:20:37Z")

</div>

Perhaps `tosecond{T}(t::T) = t / convert(T, Base.Dates.Second(1))`?

---

<div class="post-metadata">

**Author:** ![ndbecker](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/ndbecker/32/10829_2.png) [@ndbecker](https://discourse.julialang.org/u/ndbecker)\
**Post date:** [May 19, 2017, 12:33pm UTC](https://discourse.julialang.org/t/convert-time-interval-to-seconds/3806/3 "2017-05-19T12:33:26Z")

</div>

> [@kristoffer.carlsson](#):
>
> Perhaps tosecond{T}(t::T) = t / convert(T, Base.Dates.Second(1))

Nice! Maybe should be included in DateTimes, or added to docs

---

<div class="post-metadata">

**Author:** ![yakir12](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/yakir12/32/297_2.png) [@yakir12](https://discourse.julialang.org/u/yakir12)\
**Post date:** [July 9, 2019, 7:42am UTC](https://discourse.julialang.org/t/convert-time-interval-to-seconds/3806/4 "2019-07-09T07:42:19Z")

</div>

> [@kristoffer.carlsson](#):
>
> ```julia
> tosecond{T}(t::T) = t / convert(T, Base.Dates.Second(1))
> 
> ```

I apologize for necroposting, but I’ve found this implementation so useful that I’ve been returning to this specific post about a billion times, so I can imagine others might have too…

Anyways, here’s a slight improvement that takes care of time periods that are larger than a second (in case this is useful for others as well):

```julia
using Dates
tosecond(x::Hour) = Float64(Dates.value(Second(x)))
tosecond(x::Minute) = Float64(Dates.value(Second(x)))
tosecond(x::T) where {T<:TimePeriod} = x/convert(T, Second(1))

```

---

<div class="post-metadata">

**Author:** ![stevengj](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/stevengj/32/71_2.png) [@stevengj](https://discourse.julialang.org/u/stevengj)\
**Post date:** [December 3, 2024, 5:46pm UTC](https://discourse.julialang.org/t/convert-time-interval-to-seconds/3806/5 "2024-12-03T17:46:29Z")

</div>

3 posts were split to a new topic: [Time period conversion to seconds, for plotting](https://discourse.julialang.org/t/time-period-conversion-to-seconds-for-plotting/123422)
