1
当我使用TypeConverter
到DateTime
实例转换到与字符串。C#的TypeConverter禁止显示(毫)秒转换日期时间
使用文化依赖函数ConvertTo/FromString
时,看起来DateTime
的秒和毫秒部分没有转换。
当使用文化不变函数ConvertTo/FromInvariantString
毫秒仍然下落不明。无论如何,转换前后的两个DateTime
实例永远不会相同,因为我会预料到的。
该类演示效果:
using System;
using System.ComponentModel;
public class DateToStringConversionTest
{
public static void Main()
{
TypeConverter tc = TypeDescriptor.GetConverter(typeof(DateTime));
DateTime d1 = new DateTime(2010, 1, 2, 3, 4, 5, 6);
// convert to/from invariant string
string s3 = tc.ConvertToInvariantString(d1);
DateTime d3 = (DateTime) tc.ConvertFromInvariantString(s3);
Console.WriteLine("invariant string\n {0}\n=> {1}\n=> {2}\n=> equals? {3}",
d1, s3, d3, d1.Equals(d3));
// convert to/from string
string s2 = tc.ConvertToString(d1);
DateTime d2 = (DateTime) tc.ConvertFromString(s2);
Console.WriteLine("\nstring\n {0}\n=> {1}\n=> {2}\n=> equals? {3}",
d1, s2, d2, d1.Equals(d2));
}
}
这是输出:
string
02.01.2010 03:04:05 => 02.01.2010 03:04 => 02.01.2010 03:04:00 => equals? False
invariant string
02.01.2010 03:04:05 => 01/02/2010 03:04:05 => 02.01.2010 03:04:05 => equals? False
我对德国语言环境中运行,所以日期为DD.MM.YYYY
输出。
同样的问题在这里:d1.Equals(DateTime.Parse(d1.ToString()))返回False – miasbeck 2010-11-14 10:01:36
我不知道呢。 – Femaref 2010-11-14 10:04:27