# Convert unixtime to yyyymmdd::Int

**URL:** <https://discourse.julialang.org/t/convert-unixtime-to-yyyymmdd-int/104077>\
**Category:** General Usage\
**Created:** [September 20, 2023, 7:52pm UTC](https://discourse.julialang.org/t/convert-unixtime-to-yyyymmdd-int/104077 "2023-09-20T19:52:58Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![andrey2185](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/andrey2185/32/9889_2.png) [@andrey2185](https://discourse.julialang.org/u/andrey2185)\
**Post date:** [September 20, 2023, 7:52pm UTC](https://discourse.julialang.org/t/convert-unixtime-to-yyyymmdd-int/104077/1 "2023-09-20T19:52:58Z")

</div>

Hello, how can I make this code more optimal?

```julia
import Dates

const Unixtime = Int

function unix2yyyymmdd(unixtime::Unixtime)::Int
    datetime = Dates.unix2datetime(unixtime)
    date = floor(datetime, Dates.Day)
    str = Dates.format(date, "yyyymmdd")
    return Meta.parse(str)
end

@time unix2yyyymmdd(123) # -> 0.000123 seconds (38 allocations: 1.805 KiB)

```

---

<div class="post-metadata">

**Author:** ![abraemer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/abraemer/32/51403_2.png) [@abraemer](https://discourse.julialang.org/u/abraemer)\
**Post date:** [September 20, 2023, 8:06pm UTC](https://discourse.julialang.org/t/convert-unixtime-to-yyyymmdd-int/104077/2 "2023-09-20T20:06:35Z")

</div>

Well instead of parsing you could just use arithmetic on the parts (see accessors here: [Dates · The Julia Language](https://docs.julialang.org/en/v1/stdlib/Dates/#Accessor-Functions))  
So something like:

```julia
julia> d = Date(2023, 9, 1)
julia> 10^4*d.year + 10^2*d.month + d.day

```

---

<div class="post-metadata">

**Author:** ![oheil](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/oheil/32/220745_2.png) [@oheil](https://discourse.julialang.org/u/oheil)\
**Post date:** [September 20, 2023, 8:31pm UTC](https://discourse.julialang.org/t/convert-unixtime-to-yyyymmdd-int/104077/3 "2023-09-20T20:31:13Z")

</div>

```julia
function unix2yyyymmdd(unixtime::Unixtime)::Int
    Meta.parse(Dates.unix2datetime(unixtime) |> d -> floor(d, Dates.Day) |> d->Dates.format(d,dateformat"yyyymmdd"))
end

@time unix2yyyymmdd(123)
  0.000090 seconds (17 allocations: 664 bytes)
19700101

```

---

<div class="post-metadata">

**Author:** ![lbilli](https://avatars.discourse-cdn.com/v4/letter/l/59ef9b/32.png) [@lbilli](https://discourse.julialang.org/u/lbilli)\
**Post date:** [September 20, 2023, 9:58pm UTC](https://discourse.julialang.org/t/convert-unixtime-to-yyyymmdd-int/104077/4 "2023-09-20T21:58:27Z")

</div>

```julia
using Dates

function u2ymd(unixtime) 
  y, m, d = yearmonthday(unix2datetime(unixtime))
  10000y + 100m + d
end

u2ymd(123)
19700101

```
