Excel / EPPlus数字格式是否与DateTimeFormat.ShortDatePattern兼容?

我在ASP.Net中使用EPPlus创build一些Excel文件。 一切工作都很好,除了在某些情况下,我需要显示一个简短的date格式。 使用EPPlus NumberFormat ,我可以使用短date格式:

 ws.Column(1).Style.Numberformat.Format = "yyyy-MM-dd"; 

那在2015-07-21我的电子表格中输出一个date。 虽然这是普遍的,但如果可能的话,我更喜欢本地化的(基于用户区域的)格式。 我可以检索用户区域设置的短date格式:

 String s = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern; 

对于我在英国,这返回dd/MM/yyyy 。 其他使用EPPlus的作者是指应用数字格式的Open Office XML ECMA-376规范 (50MB)。 页面1768显示了这一点:

在这里输入图像说明

但是这里的m都是小写的,在.Net中不是几个月,而是几分钟,如果我这样做,是不是有点不对?

 ws.Column(1).Style.Numberformat.Format = System.Globalization.CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern; 

我没有资源来testing每种文化的date格式,所以我想知道我的方法是否有什么错误?

或者,我应该把ShortDatePatternToLower ToLower忽略大写MM吗? Excel(2013)本身使用自定义date格式的小写,所以我假设小写的方法更好? 我已经做了两种格式的testing(使用大写/小写mm ),结果是一样的,但跨文化的东西关系到我。

我花了两天的时间对此进行testing。 看来不应该使用DateTimeFormat.ShortDatePattern 。 相反,无论客户端浏览器上的区域设置/语言设置如何,短期使用此方法( ISO8601 )。

 ws.Column(1).Style.Numberformat.Format = "yyyy-MM-dd" 

这是因为浏览器不能保证与计算机的语言环境相匹配(Firefox和Chrome可以非常容易地进行修改,默认情况下Chrome会以en-US的forms进行安装),Excel使用计算机的语言环境。

MS Excel足够聪明,可以读取date值并根据Windows语言设置将其转换为正确的格式。 所以,在我的情况下,如果我的Windows语言是英国英国,我会在Excel中自动查看en-GB格式的date。

如果我然后closures电子表格,将Windows切换到挪威语,重新login并重新打开相同的电子表格,date自动显示在各自的挪威格式。