我有以下日期时间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