・C#
using System;
class Program
{
static void Main()
{
// 現在日時を表すDateTimeオブジェクトを取得
DateTime targetTime = DateTime.Now;
long unixTime = GetUnixTime(targetTime);
Console.WriteLine(unixTime.ToString());
// 出力例:1266864932
Console.ReadLine();
}
// UNIXエポックを表すDateTimeオブジェクトを取得
private static DateTime UNIX_EPOCH =
new DateTime(1970, 1, 1, 0, 0, 0, 0);
public static long GetUnixTime(DateTime targetTime)
{
// UTC時間に変換
targetTime = targetTime.ToUniversalTime();
// UNIXエポックからの経過時間を取得
TimeSpan elapsedTime = targetTime - UNIX_EPOCH;
// 経過秒数に変換
return (long)elapsedTime.TotalSeconds;
}
}
・VB.net
Module Module1
Sub Main()
' 現在日時を表すDateTimeオブジェクトを取得
Dim targetTime As DateTime = DateTime.Now
Dim unixTime As Long = GetUnixTime(targetTime)
Console.WriteLine(unixTime.ToString())
' 出力例:1266864932
Console.ReadLine()
End Sub
' UNIXエポックを表すDateTimeオブジェクトを取得
Private UNIX_EPOCH As DateTime = _
New DateTime(1970, 1, 1, 0, 0, 0, 0)
Private Function GetUnixTime(ByVal targetTime As DateTime) As Long
' UTC時間に変換
targetTime = targetTime.ToUniversalTime()
' UNIXエポックからの経過時間を取得
Dim elapsedTime As TimeSpan = targetTime - UNIX_EPOCH
' 経過秒数に変換
Return CType(elapsedTime.TotalSeconds, Long)
End Function
End Module