集结号
大气、海洋、陆地遥感交流QQ群:831106035。欢迎大家的加入,群内可以讨论与大气、陆地、海洋…遥感相关的问题,可以分享与上述兴趣相关的资源。祝大家学习愉快。
引言
在读取卫星数据时,扫描廓线获取时间有一或两种类型,常用的时间是系统是,国际原子时(TAI,International Atomic Time)和协调世界时(UTC,Coordinated Universal Time)。
TAI时间转日期
TAI = 7.328560373679167e+05;
matlab_serial_date = (TAI + 725846400 - 6)/86400 + datenum('1/1//1970');
datestr(matlab_serial_date,21)
结果
ans =
Jan.09,1993 11:34:10
日期和时间算术运算
官网有详细的运算例子。使用datetime函数可以对时间进行算数运算。
datetime转字符串:
DateStrings = {'2014-05-26';'2014-08-03'};
t = datetime(DateStrings,'InputFormat','yyyy-MM-dd')
t(1)-t(2)
注意:datetime函数使用的字符串格式 yyyy-MM-dd HH:mm:ss,表示年月日时分秒。
这里需要注意与datestr用法上的区别,这个函数里的yyyy-mm-dd HH:MM:SS,表示年月日时分秒。
dt = datestr(now,'yyyy-mm-dd HH:MM:SS')
% Year
y = datestr( dt, 'yyyy' ); % >> y = '2018'
% Month
m = datestr( dt, 'mm' ); % >> m = '06'
m = datestr( dt, 'mmm' ); % >> m = 'Jun'
% Day
d = datestr( dt, 'dd' ); % >> d = '27'
d = datestr( dt, 'ddd' ); % >> d = 'Wed'
分别获得年月日时分秒
dt.Year
dt.Month
dt.Day
dt.Hour
Day of Year 转年月日
year1 = 2010; %2010年
dayofyear = 59; %2010年的第59天
out = datetime(year1,1,dayofyear) % 转出该天是几月几日
参考
https://en.wikipedia.org/wiki/International_Atomic_Time