У меня есть следующий код, который берет строку в качестве ввода, которая преобразуется в метку времени UNIX. Я хочу сделать то же самое в golang, но я не могу распознать структуру или функцию, которая даст эквивалент структуры DateTimeOffset в Go.Что такое эквивалент C# DateTimeOffset в Go
class Program
{
static void Main(string[] args)
{
var date = GetUtcTimestampFromAttribute();
Console.WriteLine(date);
if (date != null)
{
Console.WriteLine(ToUnixTimeStamp(date.Value));
}
Console.ReadKey();
}
public static DateTimeOffset? GetUtcTimestampFromAttribute()
{
var ticks = long.Parse("7036640000000");
Console.WriteLine(ticks);
return GetUtcTimestampFromTicks(ticks);
}
public static DateTimeOffset? GetUtcTimestampFromTicks(long ticks)
{
Console.WriteLine(new DateTimeOffset(ticks, TimeSpan.Zero));
return ticks != 0 ?
new DateTimeOffset(ticks, TimeSpan.Zero) :
(DateTimeOffset?)null;
}
public static long ToUnixTimeStamp(DateTimeOffset timeStamp)
{
var epoch = new DateTimeOffset(1970, 1, 1, 0, 0, 0, TimeSpan.Zero);
return Convert.ToInt64((timeStamp - epoch).TotalSeconds);
}
}
Например:
Вход: 635804753769100000
Выход: 1444878577
Соответствуя Время в UTC: 10/15/2015 3:09:36 AM +00: 00
Может кто-то, пожалуйста, помогите мне обходным путем, чтобы получить вышеуказанный результат.
Благодаря
Я не хочу, чтобы время было зонировано. Мне нужна отметка времени Unix. Я использую C#, но я не могу включить его в код go. – Prashant
@Prashant читал документацию lib, я просто дал упрощенный пример. В принципе, объект time.Time может быть преобразован в временную метку unix во втором или наносекундном разрешении. –
Да @not_a_Golfer, но моя проблема в том, что я не могу преобразовать этот номер ввода в действительный объект времени. – Prashant