# Converting DateTime in DataFrames indo Data

**URL:** <https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210>\
**Category:** New to Julia\
**Tags:** question, dates, dataframes\
**Created:** [April 13, 2021, 3:29pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210 "2021-04-13T15:29:23Z")\
**Posts on this page:** 10\
**Page:** 1

<div class="post-metadata">

**Author:** ![Kinga](https://avatars.discourse-cdn.com/v4/letter/k/b9bd4f/32.png) [@Kinga](https://discourse.julialang.org/u/Kinga)\
**Post date:** [April 13, 2021, 3:29pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/1 "2021-04-13T15:29:23Z")

</div>

Hi! I’m reading csv file and puttining it into DataFrames. I can’t cope with changing the time column from “2019-11-18T13:09:31Z” format to “2019-11-18”. Can someone help me ?

I have code

```julia
function read_data('query.csv')
    cap_file = readlines(datadir('query.csv'))
    df = DataFrame(data(cap_file[end]))
    df = @transform(df, time = string.(chop.(:time)))
    @transform(df, time = Date.(:time))
end

```

but it gives me “syntax: character literal contains multiple characters”

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [April 13, 2021, 3:34pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/2 "2021-04-13T15:34:03Z")

</div>

This should help

```julia
julia> s = "2019-11-18T13:09:31Z"
"2019-11-18T13:09:31Z"

julia> parsed_datetime = DateTime(s, dateformat"y-m-dTH:M:SZ")
2019-11-18T13:09:31

julia> d = Date(parsed_datetime)
2019-11-18

```

---

<div class="post-metadata">

**Author:** ![Skoffer](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/skoffer/32/378_2.png) [@Skoffer](https://discourse.julialang.org/u/Skoffer)\
**Post date:** [April 13, 2021, 3:56pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/3 "2021-04-13T15:56:16Z")

</div>

Why not just

```julia
Date(s[1:10])

```

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [April 13, 2021, 4:03pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/4 "2021-04-13T16:03:15Z")

</div>

You could do that as well. But sub-setting a string like that can make code less readable and more fragile.

---

<div class="post-metadata">

**Author:** ![Kinga](https://avatars.discourse-cdn.com/v4/letter/k/b9bd4f/32.png) [@Kinga](https://discourse.julialang.org/u/Kinga)\
**Post date:** [April 13, 2021, 4:38pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/5 "2021-04-13T16:38:49Z")

</div>

> [@pdeffebach](#):
>
> `dateformat"y-m-dTH:M:SZ"`

Sorry, but I still have problem. How to do it on one of the columns of a table from DataFrames, where we have thousands of such dates?

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [April 13, 2021, 5:28pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/6 "2021-04-13T17:28:29Z")

</div>

Are the dates all in the same format?

---

<div class="post-metadata">

**Author:** ![Kinga](https://avatars.discourse-cdn.com/v4/letter/k/b9bd4f/32.png) [@Kinga](https://discourse.julialang.org/u/Kinga)\
**Post date:** [April 13, 2021, 5:52pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/7 "2021-04-13T17:52:15Z")

</div>

yes

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [April 13, 2021, 5:53pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/8 "2021-04-13T17:53:35Z")

</div>

Great, then you can just do something like

```julia
@transform(time = Date.(DateTime.(:time, dateformat"y-m-dTH:M:SZ")))

```

---

<div class="post-metadata">

**Author:** ![Kinga](https://avatars.discourse-cdn.com/v4/letter/k/b9bd4f/32.png) [@Kinga](https://discourse.julialang.org/u/Kinga)\
**Post date:** [April 13, 2021, 5:55pm UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/9 "2021-04-13T17:55:59Z")

</div>

Thank you 🤩

---

<div class="post-metadata">

**Author:** ![Daneel](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/daneel/32/175_2.png) [@Daneel](https://discourse.julialang.org/u/Daneel)\
**Post date:** [April 15, 2021, 6:55am UTC](https://discourse.julialang.org/t/converting-datetime-in-dataframes-indo-data/59210/10 "2021-04-15T06:55:49Z")

</div>

A great alternative is `CSV.File`. It can parse the timestamps for you.

[CSV.File](https://csv.juliadata.org/stable/#File)

```julia
D = DataFrame!(CSV.File(raw"C:\Data.csv",
		datarow=3, # Data starts on the third row
		dateformat=dateformat"y-m-dTH:M:SZ",
		delim=',',
		header=["Timestamp","Temperature","Diagnostic","Count"],
		types=[DateTime,Float64,String,Int64]))

```
