2010-07-06 65 views
4

我在app.config中定义了以下用户设置:如何在DateTime用户设置中包含毫秒数?

<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.181 - 这样我可以准确地将它与SQL Server日期时间字段进行比较?

+0

使用自定义日期/时间格式化字符串? – Aren 2010-07-06 18:41:02

回答

9

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

如果您确实需要该级别的准确性并且必须将其保存在用户设置中,则应该使用不同的参数类型,例如使用包含毫秒的自定义格式的字符串。标准时间格式均不包含毫秒。

+1

感谢您提供一个非常简单的解决方案。在使用设置和ToString('yyyy-MM-dd HH:mm:ss.fff')时,我使用了字符串类型的设置,并将其称为DateTime.Parse。奇迹般有效! – MCS 2010-07-07 03:27:21

1

您可以尝试将其存储为Int64,这将保留DateTime的整个值,而不会有任何格式问题或保真度损失。