Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel:如何使用c#应用基于区域设置的日期格式?_Excel_Date - Fatal编程技术网

Excel:如何使用c#应用基于区域设置的日期格式?

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

我在Excel中设置日期格式时遇到问题

我正在尝试将日期格式化为dd/MM/yyyy格式

如果我使用英语Excel,它将正确导出,但如果我使用西班牙语Excel,它将错误导出

例如
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设置)
这是用c#标记/标题的-我不明白为什么会这样-是否有任何相关代码?