C# 如何在DateTime用户设置中包含毫秒?

C# 如何在DateTime用户设置中包含毫秒?,c#,datetime,configuration,C#,Datetime,Configuration,我在app.config中定义了以下用户设置: <userSettings> <MyProject.Properties.Settings> <setting name="LastProcessedDate" serializeAs="String"> <value>07/06/2010 13:05:10</value> </setting> </

我在app.config中定义了以下用户设置:

<userSettings>
    <MyProject.Properties.Settings>
        <setting name="LastProcessedDate" serializeAs="String">
            <value>07/06/2010 13:05:10</value>
        </setting>
    </MyProject.Properties.Settings>
</userSettings>

07/06/2010 13:05:10

是否有方法指定此设置应以毫秒进行序列化(例如,
07/06/2010 13:05:10.181
),以便我可以准确地将其与SQL Server日期时间字段进行比较?

不幸的是,您无法在设置中保存毫秒值。在System.Configuration.SettingsPropertyValue.ConvertObjectToString方法中,DateTime值使用不会产生毫秒的TypeConverter.ConvertToInvariantString方法转换为字符串


如果您确实希望达到该精度级别,并且必须将其保存在用户设置中,则应使用不同的参数类型,如字符串,并使用包含毫秒的自定义格式。任何标准时间格式都不包含毫秒。

您可以尝试将其存储为
Int64
,这样可以保留
日期时间的整个值,而不会出现任何格式问题或失真。

使用自定义日期/时间格式字符串?感谢您提供了一个非常简单的解决方案。我使用了string类型的设置,读取设置时调用DateTime.Parse,写入设置时调用ToString('yyyy-MM-dd HH:MM:ss.fff')。工作起来很有魅力!