DateTimeOffset.ToUnixTimeSeconds Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Returns the number of seconds that have elapsed since 1970-01-01T00:00:00Z.
public:
long ToUnixTimeSeconds();
public long ToUnixTimeSeconds ();
member this.ToUnixTimeSeconds : unit -> int64
Public Function ToUnixTimeSeconds () As Long
Returns
The number of seconds that have elapsed since 1970-01-01T00:00:00Z.
Examples
The following example calls the ToUnixTimeSeconds method to return the Unix time of values that are equal to, shortly before, and shortly after 1970-01-01T00:00:00Z.
using System;
public class Example
{
public static void Main()
{
DateTimeOffset dto = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
Console.WriteLine("{0} --> Unix Seconds: {1}", dto, dto.ToUnixTimeSeconds());
dto = new DateTimeOffset(1969, 12, 31, 23, 59, 0, TimeSpan.Zero);
Console.WriteLine("{0} --> Unix Seconds: {1}", dto, dto.ToUnixTimeSeconds());
dto = new DateTimeOffset(1970, 1, 1, 0, 1, 0, TimeSpan.Zero);
Console.WriteLine("{0} --> Unix Seconds: {1}", dto, dto.ToUnixTimeSeconds());
}
}
// The example displays the following output:
// 1/1/1970 12:00:00 AM +00:00 --> Unix Seconds: 0
// 12/31/1969 11:59:00 PM +00:00 --> Unix Seconds: -60
// 1/1/1970 12:01:00 AM +00:00 --> Unix Seconds: 60
open System
[<EntryPoint>]
let main _ =
let dto = DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)
printfn $"{dto} --> Unix Seconds: {dto.ToUnixTimeSeconds()}"
let dto = DateTimeOffset(1969, 12, 31, 23, 59, 0, TimeSpan.Zero)
printfn $"{dto} --> Unix Seconds: {dto.ToUnixTimeSeconds()}"
let dto = DateTimeOffset(1970, 1, 1, 0, 1, 0, TimeSpan.Zero)
printfn $"{dto} --> Unix Seconds: {dto.ToUnixTimeSeconds()}"
0
// The example displays the following output:
// 1/1/1970 12:00:00 AM +00:00 --> Unix Seconds: 0
// 12/31/1969 11:59:00 PM +00:00 --> Unix Seconds: -60
// 1/1/1970 12:01:00 AM +00:00 --> Unix Seconds: 60
Module Example
Public Sub Main()
Dim dto As DateTimeOffset = New DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero)
Console.WriteLine("{0} --> Unix Seconds: {1}", dto, dto.ToUnixTimeSeconds())
dto = New DateTimeOffset(1969, 12, 31, 23, 59, 0, TimeSpan.Zero)
Console.WriteLine("{0} --> Unix Seconds: {1}", dto, dto.ToUnixTimeSeconds())
dto = New DateTimeOffset(1970, 1, 1, 0, 1, 0, TimeSpan.Zero)
Console.WriteLine("{0} --> Unix Seconds: {1}", dto, dto.ToUnixTimeSeconds())
End Sub
End Module
' The example displays the following output:
' 1/1/1970 12:00:00 AM +00:00 --> Unix Seconds: 0
' 12/31/1969 11:59:00 PM +00:00 --> Unix Seconds: -60
' 1/1/1970 12:01:00 AM +00:00 --> Unix Seconds: 60
Remarks
Unix time represents the number of seconds that have elapsed since 1970-01-01T00:00:00Z (January 1, 1970, at 12:00 AM UTC). It does not take leap seconds into account.
This method first converts the current instance to UTC before returning its Unix time. For date and time values before 1970-01-01T00:00:00Z, this method returns a negative value.