gpt4 book ai didi

julia - 在 Julia 中将日期时间格式 "1/22/20"转换为 "2020-01-22"

转载 作者:行者123 更新时间:2023-12-04 03:22:55 24 4
gpt4 key购买 nike

我想知道将日期时间格式“1/22/20”转换为“2020-01-22”的最佳方法是什么。我尝试了 DateTime.(d1.date, "m/d/y") 并且我觉得我在输出中遗漏了一些东西。有什么建议吗?

julia> first(d1, 10)
10×2 DataFrame
Row │ date value
│ String Int64
─────┼────────────────
1 │ 1/22/20 1
2 │ 1/23/20 1
3 │ 1/24/20 2
4 │ 1/25/20 2
5 │ 1/26/20 5
6 │ 1/27/20 5
7 │ 1/28/20 5
8 │ 1/29/20 6
9 │ 1/30/20 6
10 │ 1/31/20 8

julia> DateTime.(d1.date, "m/d/y")
519-element Vector{DateTime}:
0020-01-22T00:00:00
0020-01-23T00:00:00
0020-01-24T00:00:00
0020-01-25T00:00:00
0020-01-26T00:00:00
0020-01-27T00:00:00
0020-01-28T00:00:00
0020-01-29T00:00:00
0020-01-30T00:00:00
0020-01-31T00:00:00
0020-02-01T00:00:00
0020-02-02T00:00:00
0020-02-03T00:00:00

最佳答案

DateTime 构造函数将字符串转换为日期时间。要转换回字符串(不同格式),请使用 Dates.format :

Dates.format.(DateTime.(d1.date, dateformat"m/d/y"), dateformat"yyyy-mm-dd")

由于您的年份只有两位数,因此它们被解释为 20 年而不是 2020 年。要解决此问题,您可以将 Dates.Year(2000) 添加到日期。

Dates.format.(DateTime.(d1.date, dateformat"m/d/y") .+ Dates.Year(2000), dateformat"yyyy-mm-dd")

您应该确保使用 @dateformat_str宏来尽可能构造 DateFormat,因为将 String 转换为 DateFormat 非常昂贵,使用宏来完成它意味着它会发生单次,在编译时(宏展开时)而不是每个 DataFrame 行一次。

关于julia - 在 Julia 中将日期时间格式 "1/22/20"转换为 "2020-01-22",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68118560/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com