Как я могу преобразовать метку времени Unix в DateTime и наоборот?

Пакет - это способ логически организовать ваши классы. Например, вы можете объявить package com.foo; в верхней части каждого исходного файла, которые достаточно связаны друг с другом, чтобы находиться в пакете com.foo вместе. Компилятор Java и среда выполнения также ожидают, что вы поместите такие файлы в путь com/foo/, где корень этого пути является каталогом или JAR в вашем пути к классам.

Файл JAR позволяет вам физически организовать ваши классы. Вы можете взять любые файлы Java (и их родительские каталоги, соблюдая описанную выше структуру каталогов) и сохранить их в JAR-файле. Файл JAR может содержать файлы, принадлежащие нескольким пакетам, а несколько файлов JAR могут содержать файлы, принадлежащие одному и тому же пакету. Таким образом, файл JAR в значительной степени способ хранить несколько файлов классов в одном физическом файле.

Существуют некоторые другие специальные характеристики файлов JAR. Например, вы можете указать значение Main-Class в манифесте JAR, чтобы указать, какой класс является точкой входа для приложения, и вы можете скрыть пакеты в JAR-файле , что означает, что все классы, определенные в этом пакете, должны быть заархивированы в одном JAR-файле ».

678
задан Peter Mortensen 15 January 2018 в 20:36
поделиться

4 ответа

Вот то, в чем Вы нуждаетесь:

public static DateTime UnixTimeStampToDateTime( double unixTimeStamp )
{
    // Unix timestamp is seconds past epoch
    System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
    dtDateTime = dtDateTime.AddSeconds( unixTimeStamp ).ToLocalTime();
    return dtDateTime;
}

Или, для Java (который отличается, потому что метка времени находится в миллисекундах, не секунды):

public static DateTime JavaTimeStampToDateTime( double javaTimeStamp )
{
    // Java timestamp is milliseconds past epoch
    System.DateTime dtDateTime = new DateTime(1970,1,1,0,0,0,0,System.DateTimeKind.Utc);
    dtDateTime = dtDateTime.AddMilliseconds( javaTimeStamp ).ToLocalTime();
    return dtDateTime;
}
934
ответ дан K48 15 January 2018 в 20:36
поделиться

Галочка Unix составляет 1 секунду (если я помню хорошо), и галочка.NET 100  наносекунды.

при обнаружении с проблемами с наносекундами Вы могли бы хотеть попытаться использовать AddTick (10000000 * значение).

2
ответ дан Peter Mortensen 15 January 2018 в 20:36
поделиться

Записанный самое простое расширение, которое работает на нас. Если кто-либо ищет его...

public static class DateTimeExtensions
{
    public static DateTime FromUnixTimeStampToDateTime(this string unixTimeStamp)
    {

        return DateTimeOffset.FromUnixTimeSeconds(long.Parse(unixTimeStamp)).UtcDateTime;
    }
}
1
ответ дан 22 November 2019 в 21:33
поделиться
System.DateTimeOffset.Now.ToUnixTimeSeconds()
1
ответ дан 22 November 2019 в 21:33
поделиться
Другие вопросы по тегам:

Похожие вопросы: