问题标签 [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.

0 投票
9 回答
138406 浏览

c# - IFormatProvider 做什么?

我在玩 Datetime.ParseExact 方法,它需要一个 IFormatProvider ......

它可以输入null,但它到底是做什么的?

0 投票
3 回答
780 浏览

c# - 格式化字符串以正确显示日期

我需要帮助将这个字符串-->转换 20090727 10:16:36:643 --> 07/27/2009 10:16:36

该函数正在返回原始日期和时间,该SynchronizationAgent.LastUpdated()函数返回上述格式的字符串。


原问题:留作参考

我有这个-->

这是设置一个看起来像这样的属性-->

不幸的是,无论有没有String.Format显示的日期看起来像这样--> 20090727 10:16:36:643

我已经尝试了多种变体来按照我想要的方式格式化它。我错过了什么?

根据以下建议(主要是 Joel 的),我实施了建议的更改,但我仍然得到一个"String is not a valid DateTime error"

我也尝试过实现这个-->

但仍然没有。

0 投票
2 回答
2243 浏览

c# - C# IFormatable ToString("0.0000")

我有课,我想重现与ToString("0.0000")其他数字格式相关的功能。如何才能做到这一点?

0 投票
3 回答
53676 浏览

c# - 如何为 DateTime 创建和使用自定义 IFormatProvider?

我试图创建一个IFormatProvider可以识别 DateTime 对象的自定义格式字符串的实现。这是我的实现:

我期待能够在这样的DateTime.ToString(string format, IFormatProvider provider)方法中使用它,但是:

在该示例中,在美国文化中运行,结果是"00cu0Ao00or0aA",显然是因为标准的 DateTime 格式字符串正在被解释。

但是,当我以下列方式使用同一个类时:

我得到了我的期望,即"Sun Jan 02"

我不明白不同的结果。有人可以解释一下吗?

谢谢!

0 投票
2 回答
2708 浏览

.net - Label.Text / Convert.ToString 和 String.Format 帮助 / 千位分隔符

我有一个标签,我想显示它Text("1234567")就像一个带有千位分隔符的数字//

我该怎么做:

请解释这两个。

0 投票
1 回答
2942 浏览

winforms - 在 DataGridView 中使用自定义格式化程序

所以,也许这是一个糟糕的设计;我不知道。但是假设我有一个DataTable包含int值的列;这些值实际上是为了代表enum我在我的项目中拥有的某种类型。

我想要做的是DataGridView绑定到这个表并让列显示名称enum而不是整数值“0”或“1”或其他。

我考虑的一个选择是做整个规范化的事情:在其中添加一个表,其中DataSet包含enum名称,键入enum值,并让我的第一个表包含对该表的引用。

但这是一个enum特定的想法。我想知道,一般来说,我是否可以为给定类型编写自己的IFormatProvider实现ICustomFormatter*,并使用该格式化程序来控制值如何在控件的给定列中显示DataGridView(或者真的在任何控件中,就此而言) .

*这就是我怀疑的方式,如果我问的是可能的话。我对使用这些界面并没有真正的死心塌地。

0 投票
4 回答
2125 浏览

c# - C# 创建自定义 NumberFormatInfo 以在货币值为 0.00 美元时显示“免费”

我需要在我的 ASP.NET MVC 应用程序中显示一种货币,但是当货币为 0 时,我希望它显示“免费”(当然是本地化的!)而不是 0.00 美元。

所以当我有这样的事情时......

输出为 "$0.00" "$100.00"

我希望它是“免费的”“100.00 美元”

我想我可以使用 .ToString(string format, IFormatProvider formatProvider) 方法来完成此操作,但我不知道该怎么做。显然,我想尽可能多地重用 NumberFormatInfo 并且仅在输入为 0 时覆盖它。在这种情况下,我可以简单地返回一个包含我的“免费”字符串的本地化资源。

那么我该怎么做呢?

谢谢

0 投票
4 回答
4004 浏览

c# - 具有整数值的 IFormatProvider

我的对象中有一个整数值。我需要将其转换为整数值。所以我这样做了。System.Convert.ToInt64(Object) 但是FxCop说我需要提供IFormatProvider。字符串数据类型我对提供 IFormatProvider 没有任何问题。如何为整数值提供 IFormatProvider?

0 投票
1 回答
728 浏览

c# - GetFormat 永远不会获得 IFormatProvider 类型

在 WinGrid(Infragistics,如果你必须知道的话)中,我得到了一个包含ints 的列。该值是秒数,您可以从中计算时间。我创建了一个 IFormatProvider/ICustomFormatter 来做到这一点。在网格初始化期间,我设置了 Format 和 FormatInfo 参数。

但是,当在我的自定义类型格式化程序上调用 GetFormat 时,类型参数始终是 NumberFormatInfo,而不是 ICustomFormatter。为什么?

这是我的课,以防万一:

0 投票
0 回答
540 浏览

asp.net - 如何在 ASP.Net 中使用 IFormatProvider?

IFormatProvider接口允许我创建一个类,该类将对象的自定义格式设置为字符串,并且可以与例如string.Format.

但是,似乎没有一种简单的方法可以将它与 ASP.Net 一起使用。例如,如果我有一个DataGrid我可以创建一个BoundColumn并使用它DataFormatString来说明如何格式化它,但是我看不到任何方法来告诉它使用我的IFormatProvider实现。BoundColumn似乎仅限于默认格式字符串。

到目前为止,我发现的最佳解决方案是创建我自己的扩展类,DataGridColumn它基本上复制了BoundColumn.

有更好的方法吗?