英国设置:2011年7月1日(2011年7月1日)。在Excel格式化时,我使用“MMM-yy”,预计:7月11日,但它给了我“1月11日”
我的代码:
newDataRange.SetValue("Value2", arr); //arr = "01/07/2011 00:00:00.000"
newDataRange.SetValue("NumberFormat", "MMM-yy");
public static void SetValue(this Range range, string propertyName, object value)
{
var excelCulture = new CultureInfo(1033);
var args = new object[1];
args[0] = value;
range.GetType().InvokeMember(propertyName,
BindingFlags.SetProperty | BindingFlags.Public | BindingFlags.Instance, null, range, args, excelCulture);
}
我很困惑。任何人都知道如何解决这个问题 谢谢
答案 0 :(得分:2)
当您想要dd / mm / yyyy时,您使用的文化看起来像日期格式为mm / dd / yyyy。因此,您的转化使用1
中的1/7/2011
作为月份,而不是7
。
将文化更改为格式为dd / mm / yyyy的文化可以解决您的问题。
修改强>
我怀疑,LCID 1033(0x0409)是en-US,而不是en-GB。 en-GB是2057(0x0809)。您应该使用区域设置名称以避免将来出现此问题:new CultureInfo("en-GB");
答案 1 :(得分:1)
显然不是英国设置 - 2011年1月7日以美国日期格式显示的日期