thể trùng lặp:
How to convert UNIX timestamp to DateTime and vice versa?Làm thế nào để tạo ra một UTC Unix Timestamp trong C#
Làm thế nào tôi có thể tạo ra một dấu thời gian unix trong C#? (Ví dụ 2012/10/10 14:00:00 -> 1349877600)
thể trùng lặp:
How to convert UNIX timestamp to DateTime and vice versa?Làm thế nào để tạo ra một UTC Unix Timestamp trong C#
Làm thế nào tôi có thể tạo ra một dấu thời gian unix trong C#? (Ví dụ 2012/10/10 14:00:00 -> 1349877600)
private double ConvertToTimestamp(DateTime value)
{
//create Timespan by subtracting the value provided from
//the Unix Epoch
TimeSpan span = (value - new DateTime(1970, 1, 1, 0, 0, 0, 0).ToLocalTime());
//return the total seconds (which is a UNIX timestamp)
return (double)span.TotalSeconds;
}
Bạn đã cứu độ tỉnh táo của tôi. –
Tại sao "tăng gấp đôi"? Chẳng phải một số nguyên dài sẽ là mô hình tốt hơn trong vài giây sao? (Và phù hợp hơn với các đại diện Unix?) –
@ WilliamT.Mallard Nếu bạn muốn một 'long', tôi đề nghị' trở lại span.Ticks/TimeSpan.TicksPerSecond; '. Tuy nhiên, kể từ năm 2015, BCL có một phương thức tích hợp sẵn, '((Giá trị DateTimeOffset)) .ToUnixTimeSeconds()'. –
DateTime.UtcNow - new DateTime(2012,10,10,14,0,0)).TotalSeconds
A) Bạn đang thiếu một paren, tôi giả sử nó nên đi trước 'DateTime.UtcNow', vâng? Và không nên 'DateTime mới (2012,10,10,14,0,0) 'là kỷ nguyên Unix 1/1/1970? –
vui để xem một câu hỏi được đánh dấu là một bản sao ... nhiều lần. :) –