我的时间以毫秒为单位(我希望,仍然可以理解C#中的日期时间),并希望将其转换为mm:dd:yyyy格式。
new DateTime(long.Parse("508289126400004")).ToString("MM/dd/yyyy")
Getting wrong answer:
Correct - 5/17/2014
I got - 08/12/0002
有什么想法吗?
快速链接尝试 - http://ideone.com/VvixiE
答案 0 :(得分:1)
没有。你的结果是正确的。
因为您正在呼叫DateTime (Int64)
constructor
将DateTime结构的新实例初始化为指定的 刻度的数量。
这些蜱是;
以100纳秒间隔的数量表示的日期和时间 自0001年1月1日00:00:00000起已过去 阳历。
真的很难理解为什么这个长号应该生成5/17/2014
日期。如果您想对此数字生成此DateTime的原因有具体说明,请考虑添加到您的问题中。
顺便说一句,您在标题中说mm
,但在您的问题中使用MM
格式化。请注意,mm
表示分钟,MM
表示数月。自定义日期和时间说明符区分大小写。
此外,您在ToString
方法中使用的/
date separator没有任何文化。此分隔符具有以下特殊含义:将我替换为当前区域性或提供的区域日期分隔符。这意味着,如果您的CurrentCulture
DateSeparator
与/
字符不同,则字符串表示将不再包含此/
字符。
答案 1 :(得分:0)
你需要定义你的滴答声。
long beginTicks = new DateTime(404,9, 2, 0, 0, 0, DateTimeKind.Utc).Ticks;
DateTime dt = new DateTime(beginTicks + long.Parse("508289126400004") * 1000, DateTimeKind.Utc);