我有以下DateTime 4/25/2011 5:12:13 PM并尝试将其转换为int
int result = dateDate.Year * 10000 + dateDate.Month * 100
+ dateDate.Day + dateDate.Hour + dateDate.Minute + dateDate.Second;
Run Code Online (Sandbox Code Playgroud)
但它仍然得到2011425我怎么能得到时间呢?
Ale*_*x J 60
dateDate.Ticks
Run Code Online (Sandbox Code Playgroud)
应该给你你想要的东西.
此属性的值表示自0001年1月1日午夜12:00:00起经过的100纳秒间隔的数量,表示DateTime.MinValue.它不包括可归因于闰秒的刻度数.
如果您真的在寻找Linux Epoch时间(1970年1月1日以来的秒数),那么这个问题的接受答案应该是相关的.
但是如果你真的试图将日期的字符串表示"压缩"成int,你应该问问自己为什么不把它作为一个字符串存储起来.如果你还是想在那之后做,那么Stecya的回答是正确的.请记住,它不适合int,你必须使用很长的.
Ste*_*cya 49
long n = long.Parse(date.ToString("yyyyMMddHHmmss"));
Run Code Online (Sandbox Code Playgroud)
我想你想要(int
虽然这不适合,你需要将它存储为a long
):
long result = dateDate.Year * 10000000000 + dateDate.Month * 100000000 + dateDate.Day * 1000000 + dateDate.Hour * 10000 + dateDate.Minute * 100 + dateDate.Second;
Run Code Online (Sandbox Code Playgroud)
或者,存储刻度线是一个更好的主意.