matlab中如何获取当前日期时间函数的具体应用如下:
一、date ,now,clock
1.date:按照日期字符串格式返回当前系统日期
2.now:按照连续的日期数值格式返回当前系统时间
3.clock:按照日期向量格式返回当前系统时间
>> date,now,clock
ans =
09-Apr-2011
ans =
7.3460e+005
ans =
1.0e+003 *
2.01100.00400.00900.01700.04300.0470
二、year,month,day,hour,minute,second
matlab中分别使用year,month,day,hour,minute,second从上面讲到的字符串和连续型日期时间格式中提取年月日时分秒等信息
>>[year(date),year(now)]
ans =
20112011
注意:上面的函数是没法从向量型日期时间格式中正确读取上述信息的
>>year(clock)
ans =
500000
三、Matlab中处理日期与时间的函数详解
Matlab用三种格式来表示日期与时间 注:直接输出clock时,可能会以科学计数法的方式输出, clock 用fix(clock) 则能输出易于阅读的形式 fix(clock)
|
http://eelab.tsinghua.edu.cn/czzheng/blog/10-01/184048_13d5c.html
1.now返回当前的日期值(这个数的整数部分表示从公元0年1月1日到该日的天数,小数部分则表示具体的时刻)
eg.
t=now
t =7.3354e+005
2.datestr 日期转换成字符形式
调用格式 datestr(date,dateform) date为要转换的日期值,dateform为日期格式参数(具体参数值可通过help datestr查看帮助)
dateform参数说明
DATEFORMnumberDATEFORMstringExample
===========================================================================
0'dd-mmm-yyyyHH:MM:SS'01-Mar-2000 15:45:17
1'dd-mmm-yyyy'01-Mar-2000
2'mm/dd/yy'03/01/00
3'mmm'Mar
4'm'M
5'mm'03
6'mm/dd'03/01
7'dd'01
8'ddd'Wed
9'd'W
10'yyyy'2000
11'yy'00
12'mmmyy'Mar00
13'HH:MM:SS'15:45:17
14'HH:MM:SSPM'3:45:17 PM
15'HH:MM'15:45
16'HH:MMPM'3:45PM
17'QQ-YY'Q1-96
18'QQ'Q1
19'dd/mm'01/03
20'dd/mm/yy'01/03/00
21'mmm.dd,yyyyHH:MM:SS'Mar.01,2000 15:45:17
22'mmm.dd,yyyy'Mar.01,2000
23'mm/dd/yyyy'03/01/2000
24'dd/mm/yyyy'01/03/2000
25'yy/mm/dd'00/03/01
26'yyyy/mm/dd'2000/03/01
27'QQ-YYYY'Q1-1996
28'mmmyyyy'Mar2000
29 (ISO 8601)'yyyy-mm-dd'2000-03-01
30 (ISO 8601)'yyyymmddTHHMMSS'20000301T154517
31'yyyy-mm-ddHH:MM:SS'2000-03-01 15:45:17eg.
>> t=now;datestr(t,0)ans =09-May-200821:07:233.date将字符串转换成日期值
调用语法:date(year,month,day)
datenum(year,month,day,hour,minute,second)
eg.>> t=now;datestr(t,0)ans=09-May-2008 21:07:23>>datenum(ans)
ans=7.3354e+005>>4.datevec将datestr中指定的格式日期字符转换成包含日期分量的数值向量
eg.
>>c=datevec('09-May-2008 21:07:23')c=20085921723
5.weekday 可从一个日期值或字符串中找出具体的日子和星期。
eg.
>> [d,w]=weekday( 7.3354e+005)d=2
w =Mon>>[d,w]=weekday('21-Dec-2008')d=1
w =Sun6.eomday 返回任何一个月最后一天是几号
调用语法:eomday(year,month) 因为闰年的存在故需要year这个参数。
eg.>> eomday(2008,2)ans=29>> eomday(2007,2)ans=287.calendar 生成指定月份的日历。
eg
>> calendar(date)
May 2008
SMTuWThFS
0000123
45678910
11121314151617
18192021222324
25262728293031
0000000
>> calendar(2008,5)
May 2008
SMTuWThFS
0000123
45678910
11121314151617
18192021222324
25262728293031
0000000>>
补充:date返回当天日期的字符串
eg.
>> dateans =09-May-20088.tic ,toc两个结合使用可计算一组matlab操作指令的执行所需时间
eg.
>> tic; plot(rand(500,5));toc
Elapsed time is 0.078000 seconds.
另外Matlab还提供了cputime和etime(具体使用方法可看帮助文档),用来计算一次运算所占cpu时间.
eg.
>>t0=cputime;myoperation;cputime-t0
ans=0.1400
>>t1=clock;myoperation;etime(clock,t1)
ans=11.2800
注:myoperation为用户自定义脚本文件
>> t0=cputimet0=53.8125>> t1=cputimet1=54.0313>> deltaT=t1-t0deltaT=0.2188
>> t1=clockt1 =1.0e+003*2.00800.00500.00900.02100.04600.0254>> deltaT=etime(t1,t0)deltaT=9.9060>>
9.datetick 设一个坐标为时间标签eg.
>> t=(1900:10:1990)';
>> p=[100 200 150 350 200 400 500 10030 120];
>> plot(datenum(t,1,1),p);
>> datetick('x','yyyy')
>> title('test time tip')