问题标签 [iformatprovider]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
vb.net - Date.Parse 使用自定义格式化程序
这似乎是一个简单的练习,但如果我能在 MSDN 或网络上的任何地方找到正确执行此操作的示例,我会很高兴的。
我们有数据馈送,一个包含指数值和日期的文件(例如标准普尔 500 指数)。日期表示为 YYYYMMDD。当然,Date.Parse() 方法不理解这种格式。
我在一个类上写了一个简单的静态方法来解析这个,没什么大不了的,但是它激怒了我的工程师,我无法弄清楚如何让 IFormatProvider 功能工作。所有示例都处理 FORMATTING 步骤,而不是 PARSING 步骤。
所以基本上,我想说:
并从 Parse 方法中获取正确的日期值。
在 CustomFormatter 上实现了 IFormatProvider 方法后,GetFormat() 方法会使用 DateTimeFormatInfo 的 System.Type 调用,但老实说,我不知道从那里做什么,因为所有示例都处理格式化,而不是解析。如果我返回一个对象(self)或 null 并不重要,我只会得到“字符串未被识别为有效的 DateTime”。
任何指针表示赞赏。谢谢。
c# - 解析日期时间
如何将 1900-01-01 00:00:00Z 解析为 DateTime 对象?
这返回了我:
1899 年 12 月 31 日下午 7:00:00
c# - 任何内置的方式来格式化 WPF 绑定?
设想
我似乎找不到使用IFormatProvider格式化 WPF 中的绑定的方法。目前我的数据源上有一个属性:
此属性绑定到 XAML 中的标签:
如您所见,它是一个数字,但格式应为 0000.00.000。目前,我们在旧的 WinForms 应用程序中为此类事情使用单独的 IFormatProvider。
问题
- 在 WPF 中可以进行这样的格式化吗?
- 如果是,我们首选的方法是仍然使用 IFormatProvider,也可能吗?
- 如果没有,有什么好的选择?
提前致谢!
.net - 我应该始终指定要使用哪个 IFormatProvider 吗?
我尝试在我们产品的一些程序集上运行 FxCop,我得到了很多匹配“指定 IFormatProvider”规则的内容。
碰巧的是,其中一些是合法的,但它也匹配如下代码:
可以写成
第二种变体更难阅读。
那么,实际上是否建议始终指定IFormatProvider
或者它“只是”规则中使用的启发式的限制?
c# - C# - 以自定义日期时间格式获取 XElement.Value
这是我的问题:
我有一个XElement
存储 a DateTime
,我想获取DateTime
以自定义格式返回的 Value 属性。
我想知道是否有办法IFormatProvider
在XElement
.
c# - 带有自定义 DateTimeFormatInfo 的 DateTime.Parse 引发异常
为什么这段代码会抛出异常?
c# - 关于 iCustomFormatter 问题的 String.Format 与 int.ToString
我有以下两行代码:
而 BadResult 显然是坏的,而 GoodResult 是好的。我的 CustomFormatter 类是这样声明的:(还有一个我觉得相关的函数):
问题本身,当我以“良好的结果”运行代码行时,GetFormat 函数正在请求 CustomFormatter 的实例。
每当它用 Float.Tostring() 调用时,它都需要一个 NumberFormatInfo 的实例。
我最初跳到“我的 CustomFormatter 应该来自 NumberFormatInfo”。不幸的是,班级是封闭的。
那么: 我需要做什么才能使用自定义格式化程序调用 Float.ToString()?
谢谢!
c# - 如何使用 NumberFormatInfo 删除负值的括号
我们目前正在使用以下内容在我们的 Web 应用程序中创建美元值:
在此示例中,如果 DollarValue 为 145,那么我们将看到:$145。如果是 -145,那么我们将看到 ($145) 而不是 -$145。请注意,对我们来说,dollarValue 是一个 double,但它可以是任何数字类型。我认为。
无论如何,我想要的是 145 美元或 -145 美元。
现在,根据我的研究,可以使用 NumberFormatInfo 类来做到这一点。我不知道如何使用它,也找不到任何有效的例子。我确实在这里看到了这个问题:C# Creating a custom NumberFormatInfo to display "Free" when a currency value is $0.00但是来自这个问题的 MSDN 示例似乎与我真正想做的有点不同。
我意识到,我需要做以下事情:
其中 someIFormatProvider 可能是 NumberFormatInfo 类型。现在,我所做的是:
...我得到一个“实例是只读的”异常。虽然 CurrencyNegativePattern 属性的“文档”说您可以设置和获取值,但显然您不能。此外,NumberFormatInfo 是一个密封类。我不能轻松地基于它创建一个新类并覆盖该值。
我不知道如何处理这个问题。现在,我的解决方法是否定我的负值并获得我string.Format(...)
再次做的积极结果。是的,我意识到这前面没有负号,但是,当然,这很容易通过根据需要在结果前面添加“-”来解决。
有人可以为我提供一个工作示例,说明如何在这种情况下正确有效地使用 NumbefFormatInfo 类吗?谢谢。
c# - StreamWriter 和 IFormatProvider
如何将 IFormatProvider 传递给 StreamWriter?
具体来说,我想创建一个
new StreamWriter("myfile.txt", CultureInfo.InvariantCulture);
TextWriter 和 StringWriter 在构造函数中有一个参数,但 StreamWriter 没有。
属性 stringWriter.FormatProvider 是只读的。
我可以想到三种看似糟糕的解决方案的解决方法:
- 更改 Thread.CurrentCulture:这将在一个库中,所以我宁愿不更改任何全局设置,即使是暂时的。
- sw.WriteLine(InvariantCulture, , ):有很多 sw.WriteLine() 超过几个函数。我真的很想避免与他们所有人搞混。
- 首先使用 StringWriter 然后将字符串写入文件:由于流可能会变得非常大,这将产生巨大的开销。
有没有办法为 StreamWriter 指定一个 FormatProvider?基于 TextWriter 的继承,如果我可以设置属性,StreamWriter 必须具有处理此问题的方法。
c# - IEEE 1xxx 浮点格式的字符串表示形式是什么,如何输出?
我正在尝试以 VRML 2.0 使用的格式从 c# 输出浮点数。
根据vrml 规范,这是
IEEE 1xxx 浮点格式的双精度浮点数(参见 2.[IEEE])。
[IEEE]:ISO/IEC 9899:1990 编程语言——C. http://www.iso.ch/isob/switch-engine-cate.pl?searchtype=refnumber&KEYWORDS=9899 (死链接)
- 这种格式的正确字符串表示是什么?我很难找到参考。我找到了一些关于二进制表示的解释,但没有找到关于字符串表示的解释。
- 如何根据这种格式配置 NumberFormatInfo 或 CultureInfo ?
澄清:
我想生成一个 vrml 文件,我需要知道如何确保
根据 vrml 规范,将产生一个 100% 的数字。