julia - 在 Julia 中将日期时间格式“1/22/20”转换为“2020-01-22”
问题描述
我想知道将日期时间格式“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
s,因为 to 的转换String
非常DateFormat
昂贵,并且使用宏来执行它意味着它只发生一次,在编译时(宏展开时)而不是每次数据框行。
推荐阅读
- glassfish - 以管理员身份执行 Glassfish 5.1 时出现 Java 安全错误,但证书有效
- bash - 文件开头的通配模式?
- reactjs - 在 React 中提交表单后无法重置输入字段
- php - 该页面未在 codeigniter 中正确重定向
- css - 为什么这个 nth-of-type 选择器不起作用
- swift - swift : UIView 的平滑翻译与 iOS 控制面板完全一样(跟随用户手指,使用平移)
- php - 如何使用 PHP 将“字符串”操作为给定格式
- r - R中每组的第k个最小元素
- python - 如何在运行时更新 Gtk 中嵌入的 matplotlib?
- machine-learning - 如何在混淆矩阵中显示精度