2010-07-06 46 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的整個值,而不會有任何格式問題或保真度損失。