一、日期转换:在using Datetime下有效
MATLAB:0000
JULIA: 1970/1/1 0:0:0开始
datetime+second(n)
在julia中,北京时间可选用这个时区:Offset{480}
Zone123 | "Asia/Shanghai" | China | UTC+08:00 | CT |
julia>datetime(2013,7,1,12,0,0,0,Offset{0}) #
2013-07-01T12:00:00 -00:00
julia>datetime(2013,7,1,12,0,0,0,Offset{480}) # 真正的北京时间
2013-07-01T12:00:00 +08:00
julia> datetime(2013,7,1)
2013-07-01T00:00:00 UTC
julia>datetime(2013,7,1,12,0,0,0,"Asia/Shanghai")
2013-07-01T12:00:00 CST
julia>datetime(2013,7,1,12,0,0)
2013-07-01T12:00:00 UTC
julia> now(Offset{480}) # 北京时间要比美国时间早8个小时
2014-05-14T09:02:46 +08:00
julia> today()
2014-05-14
julia>string(datetime(2013,7,1,12,0,0,0,Offset{480}) ) #字符串
"2013-07-01T12:00:00+08:00"
julia> dt1=date(2014,5,14);
julia> dt2 =date(2014,5,2);
julia> dt1-dt2 #日期相关的天数,但不能相加!!!
12
julia> dt2 - year(4) +days(366) # 不同周期的相加,相减
2011-05-03
julia> st=datetime(2013,7,1,12,0,0,0,Offset{480}) ;
julia> st-second(60) # 相减60秒
2013-07-01T11:59:00 +08:00
julia>[year(st),month(st),day(st),hour(st),minute(st),second(st)]
6-element Array{Int64,1}:
2013 #年
7 #月
1 #日
12 #小时
0 #分
0 #秒
julia> timezone(st) #查看时区
Offset{480}
julia> dayofweek(now(Offset{480}))#周三,返回为3
3
julia>date(datetime(2014,1,4,12,30,0)) #查看日期
2014-01-04
julia>typeof(date(datetime(2014,1,4,12,30,0)))
Date{ISOCalendar}
注意:Date类型支持排序操作!
julia>sort([date(2014,1,2),date(2013,1,2)])
2-element Array{Date{ISOCalendar},1}:
2013-01-02
2014-01-02
几个区别:dayofweek, dayofweekinmonth,daysofweekinmonth
julia>dayofweek(date(2014,5,14)) # 此时是星期几,星期三
3
# 当天的星期日,在当月中,排行第几?,2014,5,14在5月份中是第2个星期三,但不是表示,是第2周
julia>dayofweekinmonth(date(2014,5,14))
2
julia> daysofweekinmonth(date(2014,5,14))#当天在这周是第几天,第4天??不确定!!
4
注意,datetime最后有二个参数是比正常情况下要多,主要是考虑到全球不同时区的时差影响。
strftime([format], time)# 这个好用
strptime([format], timestr) #这个难用
问:当日所在的这周是当月第几周?
julia> date(now())#假定当天为2014-5-14
2014-05-14
# 当周在当月中是第3周
julia> week(date(2014,5,14))-week(date(2014,5,1))+1
3
julia>date(2014,5,19)+day(1)
2014-05-20
string(date(datetime(2014,1,2)))