【day16】从零开始学数学建模-日期使用方法汇总

在时间序列分析中,通常需要计算时间间隔、分析周期性或构建时间序列预测模型等,例如股票价格、气象数据或有关于年月日的问题。通过将时间转换为datetime对象,可以方便地进行数据处理。

日期的处理虽然听起来很简单,有的时候处理这些问题确实让人头痛,总会遇到各种各样的小问题。所以我把用到过的关于日期的转换的函数做一个汇总,同时尽量把使用这些函数的场景、怎么使用解释清楚。


可视化日期数字转datenum

可视化日期即我们能一眼看懂的日期,比如说20250912,或者2025/12/34、又或者2025-07-30等一系列我们能看懂,但机器看不懂的日期。因此,想要更好地处理时间序列的问题,需要把日期转为机器能看得懂的形式。datenumdatetime能很好的解决这个问题。

datenum返回的是从公元 0000 年 1 月 0 日开始的连续天数(双精度浮点数),可以直接进行加减法,但精度受浮点数限制(毫秒级)。datetime支持时区和格式化显示,是高精度时间类型(纳秒级)。新版 MATLAB更推荐使用datetime,但本人更习惯用datenum。

所以先看datenum的用法:

Matlab 复制代码
date_here = 20250613;
n = datenum(num2str(date_here),'yyyymmdd')

可以使用的时间格式有以下这些

更多的datenum请看datenum的文档。

Matlab 复制代码
doc datemun

datenum转detestr

一般在画图的时候,在figure上添加标签 会用到detestr**。**

Matlab 复制代码
date_start = datenum(2025,6,16);
n = datestr(date_start,'mmm.dd,yyyy')

datenum转datevec

datevec可以更方便地提取年月日时分秒

Matlab 复制代码
date_start = datenum(2025,6,16);
v = datevec(date_start)

datenum转datetime

万一两个要混着弄呢?比如说遇到"不规则时间转化为整小时半小时"这种问题,后面有提到。

Matlab 复制代码
date_start = datenum(2025,6,16);
t = datetime(date_start,'ConvertFrom','datenum')

datetime转datenum

有时候我真的用不惯datetime,所以还是要换回来/(ㄒoㄒ)/~~

Matlab 复制代码
datenum(t)

datetime等序时间间隔

生成相同时间间隔的时间序列会用到。比如,从2025/06/16 00:00开始,生成2025/06/16 00:00, 2025/06/16 01:00, 2025/06/16 02:00, 2025/06/16 03:00。

Matlab 复制代码
date_start = datenum(2025,6,16);
t = datetime(date_start,'ConvertFrom','datenum');
T = t + hours(0:3);

不规则时间转化为整小时半小时

这个的使用场景比较少,之前用它是因为一组数据的时间乱七八糟,没有固定时间间隔,但是又要和另外一个整点的数据作比较,才会用到它。

Matlab 复制代码
date_start = datenum(2025,6,16,15,18,0);
t = datetime(date_start,'ConvertFrom','datenum');
mm = minute(t);
if mm < 15
    time_series = dateshift(t,'start','hour');
elseif mm <= 45
    time_series = dateshift(t,'start','hour')+minutes(30);
else
    time_series = dateshift(t,'start','hour')+hours(1);
end

常用的就是这些了,更多的日期使用方法,等我遇到后再来更新吧~~~

相关推荐
Evand J6 小时前
【MATLAB例程,图像降噪滤波9】自适应维纳滑动窗口滤波(Wiener)图像降噪、方法对比,有中文注释
开发语言·图像处理·计算机视觉·matlab·滑动窗口·滤波·降噪
热心网友俣先生9 小时前
A题-药材的烘干问题-题意逐句翻译
算法·数学建模
建模小刘11 小时前
2026数学建模ABCDE选题分析大白话版本
数学建模
建模小刘12 小时前
2026数学建模国赛C题选题分析与第一小问内容
数学建模
数模加油站15 小时前
26数模国赛C题|思路第3弹【顶流思路+深度攻略】
算法·数学建模·数学建模竞赛·国赛·26国赛
matlab代码16 小时前
基于matlab水果识别系统(西红柿、香蕉、梨、青椒)【源码64期】
开发语言·matlab
民乐团扒谱机16 小时前
【微科普】相位调制 (PM) 理论推导、频谱演化与 MATLAB 仿真验证
matlab
C灿灿数模17 小时前
2026国赛数学建模D题思路分析与模型代码讲解,持续更新
数学建模
kaixin_啊啊18 小时前
中国研究生数学建模竞赛(华为杯)学习笔记——数据预处理全流程
人工智能·笔记·学习·数学建模·ai·大模型·数据预处理
我爱C编程1 天前
基于GCC-PHAT与球面散乱数据插值ML估计算法的混合麦克风阵列声源定位方法Matlab仿真
matlab·gcc-phat·球面散乱数据插值·ml估计·麦克风阵列声源定位