Datetime Mathematica的日期格式

Datetime Mathematica的日期格式,datetime,wolfram-mathematica,quantitative-finance,Datetime,Wolfram Mathematica,Quantitative Finance,当我试图在Mathematica中绘制一些金融时间序列时,我遇到了一个问题,如下图所示: 2000年之后,似乎不再处理这些数据 有办法解决这个问题吗 从Bloomberg或Excel导出时间序列以用于数学(使用版本8)的最佳格式是什么 我确实知道FinancialData函数。然而,由于不知道确切的符号,因此很难直接使用Mathematica 使用DateFunction选项告诉DateListPlot如何转换日期: DateFunction -> (DateList[{#, {"Mont

当我试图在Mathematica中绘制一些金融时间序列时,我遇到了一个问题,如下图所示:

2000年之后,似乎不再处理这些数据

有办法解决这个问题吗

从Bloomberg或Excel导出时间序列以用于数学(使用版本8)的最佳格式是什么

我确实知道FinancialData函数。然而,由于不知道确切的符号,因此很难直接使用Mathematica


使用
DateFunction
选项告诉
DateListPlot
如何转换日期:

DateFunction -> (DateList[{#, {"MonthNameShort", "YearShort"}}] &)

(括号很重要。)

这里有一个函数,可以将这些日期字符串转换为Mathematica可以更好地处理的格式:

dateConv = With[{s = StringSplit[#, "-"]}, {DateList[{s[[2]], "YearShort"}][[1]],
     DateList[s[[1]]][[2]]}] &
你可以试试

DateListPlot[data, DateFunction -> dateConv]

编辑:最初我尝试了
日期列表[{“11月11日”、{“Monthnamesort”、“YearShort”}]
但这告诉我
字符串“11月11日”-
11“不能解释为{“Monthnamesort”格式的日期”,

“YearShort”}。
。可能是一个bug?

为什么不使用WolframAlpha[…]函数-它导入Mathematica格式的本机文件并更新到当前日期:

    timeseries = WolframAlpha["msft close Jan 1, 2010 to Jan 21 2011",
{{"DateRangeSpecified:Close:FinancialData", 1}, "TimeSeriesData"}];
DateListPlot[timeseries]

这只是一个输入的例子。我不确定你到底需要什么样的数据,但是你可以通过WolframAlpha函数得到很多数据。请阅读以下内容:

(一)
2)

值得注意的是,
DateList[{“2011年11月”、{“MonthName”、“,”Year”}]
不起作用(试试看),即使
StringMatchQ[“2011年11月”、
给出了
True
。我怀疑有一个bug。相关的(但不是答案):我做的完全一样,但是
日期列表[{“11月11日”,{“Monthnamesort”,“YearShort”}]
给了我
日期字符串::str
!这似乎不适用于Windows上的非英语区域设置(匈牙利语和美国英语尝试过,只适用于英语),这些日期最有可能反映每月收盘价。如果您可以指定
日期列表
是用于月末而不是开始,那就太好了。显然,您可以在转换后更改
日期列表
,但如果选项存在,那就太好了……或者可能有,但我不知道它是什么???@MikeHoneychurch您可以使用
DatePlus
移动到月末(可能是+1个月,-1天)@Brett这就是我目前所做的,但我只是观察到,如果这可以通过某种方式来实现,那将是一件好事。它对我来说是可行的,但我通常使用日期列表[{“11月11日”、{“MonthNameShort”、“-”、“YearShort”}],而且它总是有效的。@b.Gatesuck它在Mma 8.0.4(Windows)中不起作用,是否指定了分隔符。在我决定根据我的答案创建变通功能之前,我也尝试过分隔符表单。我确认它在Windows 7和Linux 64位上都适用于Mma 8.0.4。@b.gatesucks谢谢!它必须是特定于XP的,否则我的Mma安装已损坏then@b.gatessucks我想出来了:在Windows上,只有将语言环境设置为US English时,它才起作用。@Vitaly,非常感谢您的回答。我一回去工作就要试试这个!