Excel:如何使用c#应用基于区域设置的日期格式?
我在Excel中设置日期格式时遇到问题 我正在尝试将日期格式化为dd/MM/yyyy格式 如果我使用英语Excel,它将正确导出,但如果我使用西班牙语Excel,它将错误导出 例如Excel:如何使用c#应用基于区域设置的日期格式?,excel,date,Excel,Date,我在Excel中设置日期格式时遇到问题 我正在尝试将日期格式化为dd/MM/yyyy格式 如果我使用英语Excel,它将正确导出,但如果我使用西班牙语Excel,它将错误导出 例如15/02/yyyy而不是15/02/2013 我必须将西班牙语Excel的格式更改为dd/MM/aaaa格式才能正常工作 是否有一个表单可以使用标准方式,以便独立于Excel语言使用相同的语法 提前谢谢 谈论我正在使用的C# 我在与日期对应的列中使用了formmated DataGridView: dgvData.C
15/02/yyyy
而不是15/02/2013
我必须将西班牙语Excel的格式更改为dd/MM/aaaa格式才能正常工作
是否有一个表单可以使用标准方式,以便独立于Excel语言使用相同的语法
提前谢谢
谈论我正在使用的C#
我在与日期对应的列中使用了formmated DataGridView:
dgvData.Columns[x].DefaultCellStyle.Format = "dd/MM/yyyy";
然后使用Microsoft.Office.Interop.Excel类,我以以下方式比较格式:
Range.EntireColumn.NumberFormat = dgvData.Columns[x].DefaultCellStyle.Format;
谢谢。您可以从注册表中读取“短日期”格式(以及所需的其他类型的格式)
一段简短的代码将允许访问注册表:
Option Explicit
Function RegKeyRead(i_RegKey As String) As String
Dim myWS As Object
On Error Resume Next
'access Windows scripting
Set myWS = CreateObject("WScript.Shell")
'read key from registry
RegKeyRead = myWS.RegRead(i_RegKey)
End Function
然后,您可以使用适当的键调用此函数以获得所需的格式:
LclDteFormat = _
RegKeyRead("HKEY_CURRENT_USER\Control Panel\International\sShortDate")
国际部分提供的其他格式包括:
- 斯隆格达特
- 短时间
- 刺激形式
- s1159和s2359(用于AM和PM设置)