主要内容

处理和转换日期

日期的格式

几乎所有财务数据来源于一个时间序列,函数在金融工具箱™广泛date-handling功能。工具箱函数支持日期或日期和时间格式作为特征向金宝app量,datetime数组,或串行数字日期。

  • 日期特征向量文本表示日期和时间,您可以使用多种格式。例如,“dd-mmm-yyyy HH: MM: SS”,“dd-mmm-yyyy”,“mm / dd / yyyy”所有支持的文本格金宝app式日期字符向量。多数情况下,您使用特征向量(例如日期14 - 9 - 1999)在处理日期。

  • Datetime数组创建使用datetime,是最好的数据类型为代表的时间点。datetime值有灵活的显示格式和纳秒精度,并且可以考虑时区,夏令时,闰秒。当datetime对象作为输入其他金融工具箱函数,输入的格式datetime对象是保存。例如:

    originalDate = datetime(“现在”,“格式”,“yyyy-MM-dd HH: mm: ss”);%找到下一个营业日b = busdate (originalDate)
    b = datetime 2021-05-04 15:59:34

  • 串行日期数字代表一个日历日期的天数,约会了一个固定的基地。在MATLAB®软件,串行日期号码1公元0000年1月1日是金融工具箱内部工作串行数字日期(如730377年)。MATLAB还使用串行时间代表天午夜开始的分数。例如,6点=0.75连续几天,所以下午6点14 - 9 - 1999在MATLAB,串行日期号码730377.75

请注意

如果你指定一个两位数,MATLAB假设在100年一年集中在目前的一年。看到函数datenum为特定的信息。MATLAB内部日期生成没有模糊值处理和计算。但是,只要有可能,使用串行数字或日期特征向量包含四位数的年。

许多金融工具箱函数要求日期作为特征向量,输入参数接受日期datetime数组,或串行数字日期。如果你正在处理几个MATLAB命令行级别的日期,日期特征向量更方便。如果您使用的是金融工具箱函数大量的日期,如大型投资组合或现金流分析,性能提高了如果使用datetime数组或数字串行日期。有关更多信息,请参见在MATLAB代表日期和时间

日期转换

金融工具箱提供了函数转换日期字符向量或串行日期数字。此外,您可以将特征向量或串行日期数字datetime数组。

日期格式之间转换的函数有:

datedisp

显示一个数字矩阵特征向量与条目日期格式化的日期。

datenum

将一个日期特征向量转换为串行日期号码。

datestr

将串行日期号码转换为日期特征向量。

datetime

将特征向量或串行日期数字数组创建一个datetime。

datevec 将串行数字或日期特征向量转换为日期向量的元素(年月日小时分钟第二)
m2xdate

将MATLAB串行日期号码Excel®串行日期号码。

x2mdate

将微软®Excel连环约会MATLAB串行日期数字。

有关更多信息,请参见Datetime数组之间的转换、数字和文本

Datetime数组之间的转换和特征向量

日期可以是一个特征向量组成的字段与一个特定的日期和时间。有几种方法来表示日期和时间在几个文本格式。例如,所有以下是特征向量代表8月23日,2010 04:35:42点:

23日- 8月- 2010 04:35:06点的周三,8月23日的“08/23/10泰”“8月23日16:35:42.946”

日期特征向量包含字符,单独的字段,如连字符,空间,和结肠这里使用:

d =“23 - 8月- 2010 16:35:42”

将一个或多个日期特征向量datetime数组的使用datetime函数。为了获得最佳的性能,指定的格式输入特征向量作为输入datetime

请注意

说明符,datetime用来描述日期和时间格式说明符的不同datestr,datevec,datenum函数接受。

t = datetime (d,“InputFormat”,“dd-MMM-yyyy HH: mm: ss”)
t = 23 - 8月- 2010 16:35:42

虽然日期字符串,d,datetime标量,t类似,他们是不平等的。视图的大小和每个变量的数据类型。

dt
类属性名称大小字节d 1 x20的40个字符t 1 x1 121 datetime

把一个datetime数组使用的特征向量字符cellstr。例如,当前的日期和时间转换为时间戳添加到一个文件的名字。

t = datetime (“现在”,“格式”,“yyyy-MM-dd“T”HHmmss”)
t = 2016 - 12 - 11 - t125628 datetime
S = char (t);文件名= [“myTest_”,年代)
文件名= ' myTest_2016-12-11T125628 '

串行转换日期数字Datetime数组

连续时间可以代表天午夜开始的分数。例如,6点=0.75连续几天,所以特征向量2003年- 10月31日,下午6点的在MATLAB是日期的数字731885.75

将一个或多个串行数字日期datetime数组的使用datetime函数。指定日期号码的类型转换:

t = datetime (731885.75,“ConvertFrom”,“datenum”)
t = datetime 2003年- 10月31日18:00:00

Datetime数组转换为数值

一些MATLAB函数接受数值数据类型而不是datetime值作为输入。这些函数应用于你的日期和时间数据,首先,将datetime值转换为有意义的数字值,然后调用该函数。例如,日志函数接受输入但不datetime输入。假设你有一个datetime数组的日期生成的研究或实验。

t = datetime (2014、6、18) + calmonths (1:4)
t = 1×4 datetime数组18 - 2014年7月- 2014年8月18 - - 18 - 2014年9月- 2014年10月18 - -

减去原点的价值。例如,起源的值可以是一个实验开始的一天。

dt = t - datetime (2014、7、1)
dt = 1×4时间数组408:00:00 1152:00:00 1896:00:00 2616:00:00

dt是一个持续时间数组中。转换dt到一个数组中的值的单位的年,天,小时,分钟,秒使用,,小时,分钟,或函数,分别。

x =时间(dt)
x = 408 1152 1896 2616

通过数组作为输入日志函数。

日志(y = x)
y = 6.0113 - 7.0493 7.5475 - 7.8694

输入转换datenum

datenum函数是重要的金融工具软件的使用效率。datenum需要一个输入日期在任何一个特征矢量格式,“dd-mmm-yyyy”,“mm / dd / yyyy”,或“dd-mmm-yyyy hh: mm: ss.ss”格式是最常见的。输入日期特征向量可以有六个字段由字母和数字隔开其他字符,这样:

  • 字段是一个整数1通过31日

  • 月字段是一个整数1通过12或一个字母字符向量和至少三个字符。

  • 字段是一个非负整数。如果只指定两个数字,那么假设一年躺在100年期内集中在当前的年。如果省略一年,今年是默认的。

  • 小时,分钟和秒字段是可选的。他们是整数用冒号分开或紧随其后“我”“点”

例如,如果当前的年份是1999年,那么所有这些日期是等价的:

“17 - 1999年5月- - - - - -”“17 - 99年5月- - - - - -”5月17日的1999年5月17日的“5/17/99”“5/17”

同时,这两种格式表示相同的时间。

“1999年5月- 17 - 18:30“5/17/99/6:30点”

数字仅仅输入的默认格式遵循我们的约定。因此,3/6是3月6日,6月3日。

datenum,你可以将日期转换成串行日期格式,将它们存储在一个矩阵变量中,然后通过一个函数的变量。或者,您可以使用datenum直接在一个函数输入参数列表。

例如,考虑函数bndprice计算的价格债券到期收益率。首先设置变量的到期收益率,票面利率,和必要的日期。

收益率= 0.07;CouponRate = 0.08;解决= datenum (“17 - 2000年5月- - - - - -”);成熟= datenum (01 - 10月- 2000的);

然后调用函数的变量。

bndprice(产量、CouponRate解决、成熟度)
ans = 100.3503

另外,日期特征向量转换为串行日期数字直接在函数输入参数列表。

bndprice (0.07, 0.08, datenum (“17 - 2000年5月- - - - - -”),datenum (01 - 10月- 2000的))
ans = 100.3503

bndprice是一个函数的一个例子旨在检测日期的存在特征向量,使自动转换。等功能的bndprice、日期特征向量可以直接通过。

bndprice (0.07, 0.08,“17 - 2000年5月- - - - - -”,01 - 10月- 2000的)
ans = 100.3503

代表的决定日期作为特征向量或串行日期数字通常是一个方便的问题。例如,当格式化数据视觉显示或调试date-handling代码,您可以查看日期日期特征向量更容易,因为串行日期数字是难以解释的。交替,串行日期数字只是另一种类型的数值数据,你可以在一个矩阵以及任何其他数值数据,方便操作。

记住,如果你创建一个向量输入日期的特征向量,使用一个列向量,并确保所有的特征向量都是一样的长度。确保特征向量是相同的长度,用空格或零填充特征向量。有关更多信息,请参见特征向量输入

输出转换datestr

datestr将串行日期数字转换为19个不同日期的特征向量输出格式显示日期,时间,或两者兼而有之。“日-月-年”的默认输出日期是一个特征向量,例如,24 - 8月- 2000。的datestr函数是用于输出报告做准备。

datestr格式

描述

01 - 3月- 2000 15:45:17

day-month-year小时:分钟:秒

01 - 3月- 2000

day-month-year

03/01/00

月/日/年

3月

月,三个字母

月,单字母

3

月数

03/01

月/日

1

天月

结婚

天的星期,三个字母

W

天的星期,单一的信

2000年

年,四个数字

99年

一年,两个数字

Mar01

月年

15:45:17

小时:分钟:秒

03:45:17点

小时:分钟:秒或点

15分

小时:分钟

下午03:45

小时:分钟或点

q1 - 99

日历quarter-year

第一季度

日历季度

当前的日期和时间

今天现在函数返回串行数字为当前日期,和当前日期和时间。

今天
ans = 736675
现在
ans = 7.3668 e + 05

MATLAB函数日期返回当前日期的特征向量。

日期
ans = ' 11 - 12月- 2016 '

确定具体日期

金融工具箱提供了许多功能确定具体日期。例如,假设你安排一个每月上周五的会计程序。使用lweekdate函数返回的日期为2000年。输入参数6周五指定。

1:12 Fridates = lweekdate (2000);周五= datestr (Fridates)
星期五= 12×11字符数组的28 - 1月- 2000 ' 25 - 2月- 2000 ' 31 - 3月- 2000的28 - 4月- 2000 ' 26日—2000年5月- 30——2000年6月- 7月28 - - 2000”的25 - 8月- 2000年的29 - 9月- 2000年10月27 - - 2000”的24 - 11月- 2000年的29 - 12月- 2000

需要具体日期的另一个例子可能是,你的公司关闭在马丁·路德·金。一天,1月的第三个星期一。您可以使用nweekdate函数来确定具体日期为2011年到2014年。

MLKDates = nweekdate (3 2 2011:2014 1);MLKDays = datestr (MLKDates)
MLKDays = 4×11字符数组的17 - 1月- 2011 ' 16 - 1月- 2012 ' 21 - 1月- 2013 ' 20 - 1月- 2014

确定假期

占假日和其他非贸易的日子是很重要的,当你检查财务日期。金融工具箱提供了假期函数,它包含节假日和特殊非贸易的天纽约证券交易所从1950年到2030年,包容性。此外,您可以使用nyseclosures评估所有已知或预期的闭包的纽约证券交易所从1月1日,1885年,2050年12月31日。nyseclosures返回一个向量之间的串行日期数字对应市场关闭日期StartDate可以EndDate、包容。

在这个例子中,使用假期确定标准的假期在2012年下半年。

LHHDates =假期(1 - 7月- 2012的,2012年- 12月31日的);LHHDays = datestr (LHHDates)
LHHDays = 6×11字符数组的04 - 7月- 2012 ' 03 - 9月- 2012年10月29 - - 2012年的30 - 10月- 2012 ' ' 22日- 11月- 2012 ' 25 - 12月- 2012

然后,您可以使用busdate函数来确定下一个营业日在2012年这些假期。

LHNextDates = busdate (LHHDates);LHNextDays = datestr (LHNextDates)
LHNextDays = 6×11字符数组的05 - 7月- 2012 ' 04 - 9月- 2012 ' 2012年- 10月31日的2012年- 10月31日的23 - 11月- 2012 ' 26 - 12月- 2012

现金流确定日期

确定现金流证券与周期性付款日期,使用cfdates。这个函数占每年优惠券,日计数的基础上,月底规则。例如,您可以确定一个安全支付的现金流日期四个优惠券每年的最后一天使用一个月实际/ 365日计数。为此,进入结算日期、到期日和参数,基础,EndMonthRule

PayDates = cfdates (的14 - 3月- 2000,30 - 11月- 2001 '、4、3、1);发薪日= datestr (PayDates)
发薪日= 7×11字符数组的31日——2000年5月——31日- 8月- 2000年的30 - 11月- 2000”2001年- 2月28日的“31日——2001年5月——”31日- 8月- 2001年的30 - 11月- 2001 '

另请参阅

|||||||||||||||

相关的例子

更多关于

外部网站