如何将DateTime转换为int类型?



我有以下日期时间4/25/2011 5:12:13 PM然后试着把它转换成int

 int result = dateDate.Year * 10000 + dateDate.Month * 100 
             + dateDate.Day + dateDate.Hour + dateDate.Minute + dateDate.Second;

但是它仍然得到2011425,我怎么能得到时间呢?

dateDate.Ticks

应该能给你想要的。

此属性的值表示100纳秒间隔的个数从12:00:00开始午夜,0001年1月1日代表DateTime.MinValue。它不包括滴答的次数都归因于闰秒。

DateTime。蜱虫


如果您真的在寻找Linux纪元时间(从1970年1月1日开始的秒数),那么这个问题的公认答案应该是相关的。


但是如果你真的想"压缩"将日期的字符串表示形式转换为int,您应该问自己为什么不直接将其存储为字符串开始。如果在那之后你还想做,steya的答案是正确的。请记住,它不适合整型,你必须使用长。

long n = long.Parse(date.ToString("yyyyMMddHHmmss"));

参见自定义日期和时间格式字符串

我想你想要(这将不适合int虽然,你需要将其存储为long):

long result = dateDate.Year * 10000000000 + dateDate.Month * 100000000 + dateDate.Day * 1000000 + dateDate.Hour * 10000 + dateDate.Minute * 100 + dateDate.Second;

或者,存储刻度是更好的主意。

您想要一个看起来像20110425171213的'int'吗?在这种情况下,您最好使用适当格式的ToString(例如'yyyyMMddHHmmss'),然后将字符串转换为整数(或长,无符号整型,因为它将超过32位)。

如果你想要一个实际的数值(从0年开始的秒数),那么这是一个非常不同的计算,例如

result = second
result += minute * 60
result += hour * 60 * 60
result += day * 60 * 60 * 24 

等。

但是你最好使用Ticks。

string date = DateTime.Now.ToString();
date = date.Replace("/", "");
date = date.Replace(":", "");
date = date.Replace(" ", "");
date = date.Replace("AM", "");
date = date.Replace("PM", "");            
return date;

使用Date.parse将datetime转换为整数

var yourdate = new Date(); //in your case '2011-04-25T17:12:13'
var d = Date.parse(yourdate);
alert(d); //this is in interger

相关内容

  • 没有找到相关文章

最新更新