0

英国设置:2011 年 1 月 7 日(2011 年 7 月 1 日)。在 Excel 中格式化时,我使用“MMM-yy”,预期:Jul-11,但它给了我“Jan-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);
        }

我很困惑。有谁知道怎么解决这个谢谢

4

2 回答 2

2

当您想要 dd/mm/yyyy 时,看起来您使用的文化具有 mm/dd/yyyy 的日期格式。因此,您的转换使用1from1/7/2011作为月份而不是7.

将文化更改为具有 dd/mm/yyyy 格式的文化应该可以解决您的问题。

编辑

正如我所怀疑的,LCID 1033 (0x0409) 是 en-US,而不是 en-GB。en-GB 是 2057 (0x0809)。您应该使用语言环境名称以避免将来出现此问题,请参阅:new CultureInfo("en-GB");

于 2011-05-23T16:26:19.950 回答
1

这显然不是英国设置 - 日期 2011 年 1 月 7 日将以美国日期格式显示为 2011 年 1 月

于 2011-05-23T16:27:08.860 回答