将时间转换为mm:dd:yyyy格式

时间:2015-10-27 10:21:48

标签: c# datetime

我的时间以毫秒为单位(我希望,仍然可以理解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

2 个答案:

答案 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);