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 の日付形式があるようです。したがって、変換では、の代わりに月として1fromを使用しています。1/7/20117

カルチャを dd/mm/yyyy の形式のものに変更すると、問題が解決するはずです。

編集

私が疑ったように、LCID 1033 (0x0409) は en-GB ではなく en-US です。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 に答える