日历月份名称或缩写的数组

时间:2019-04-17 22:00:55

标签: julia

在基数R中,我们可以轻松访问包含日历月份名称month.names的数组和包含日历月份缩写month.abb的数组:

> month.name
# [1] "January"   "February"  "March"     "April"     "May"       "June" 
# [7] "July"      "August"    "September" "October"   "November"  "December"

> month.abb
# [1] "Jan" "Feb" "Mar" "Apr" "May" "Jun" "Jul" "Aug" "Sep" "Oct" "Nov" "Dec"

类似地,在Python中,标准库calendar模块中有两个类似数组的对象:

>>> from calendar import month_name, month_abbr
>>> list(month_name)
# ['', 'January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']
>>> list(month_abbr)
# ['', 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']

Julia在标准库Dates模块或第三方软件包中是否具有类似的月份名称数组?

2 个答案:

答案 0 :(得分:4)

@hckr提供了一个很好的答案,说明这些东西在内部当前的存储位置。但是,LOCALES不会导出Dates,因此我们应尽量避免使用模块中未导出的对象。在这种情况下,您可以使用(导出的)函数monthname检索月份名称:

julia> monthname.(1:12)
12-element Array{String,1}:
 "January"  
 "February" 
 "March"    
 "April"    
 "May"      
 "June"     
 "July"     
 "August"   
 "September"
 "October"  
 "November" 
 "December" 

答案 1 :(得分:1)

编辑:请参阅@Colin T Bowers的正确答案。您应该使用monthnamemonthabbrdaynamedayabbr函数来检索这些名称和缩写,例如dayabbr.(1:7)dayabbr(2)。这些函数还可以使用locale参数来提供其他语言/语言环境的名称/缩写。我的答案已经变成关于当前内部存储的内容。

有。它们存储在Dict中以提供可用的语言环境(默认情况下仅英语,但您可以添加其他语言)。您可以使用Dates.LOCALES["english"]来访问它们。这将为您提供以下格式的struct

struct DateLocale
    months::Vector{String}
    months_abbr::Vector{String}
    days_of_week::Vector{String}
    days_of_week_abbr::Vector{String}
    month_value::Dict{String, Int}
    month_abbr_value::Dict{String, Int}
    day_of_week_value::Dict{String, Int}
    day_of_week_abbr_value::Dict{String, Int}
end

因此,Dates.LOCALES["english"].months_abbr将以字符串的形式为您提供英文月份的缩写。您还可以获取星期几及其缩写。您还可以使用DateLocale构造函数向此字典添加其他语言环境。

Dates.LOCALES['localename']语言环境中解析日期时,也会使用localename中的信息。

https://docs.julialang.org/en/v1/stdlib/Dates/index.html#Query-Functions-1