#java #c# #date #date-conversion
#java #c# #Дата #преобразование даты
Вопрос:
Недавно я начал поддерживать систему / приложение, написанное на Java.
Мне нужно преобразовать приведенную ниже длинную дату в читаемую дату, такую как 21 октября 2016 :
Login date : 634940995544109969
Logout date : 63494125060775764
Я пробовал разные коды, кажется, у меня что-то не получается.
Решение может быть на Java или c #.
Комментарии:
1. У вас есть пример из источника о том, как генерируется это число?
2. Что же представляют эти цифры? Они не выглядят как миллисекунды или даже микросекунды с эпохи Unix… откуда вы взяли эти значения?
3. Для преобразования вам нужно больше знать о
Login
иLogout
.4. Ах, еще одно рабочее задание, замаскированное под вопрос, даже с оправданием «Я пытался, но ничего не получилось :'(«.
5. «63» в начале обоих чисел совпадает с первыми двумя цифрами количества секунд между 1 января 1 года н.э. и 21 октября 2016 года н.э. (63 612 604 800). Время выхода из системы на порядок меньше, чем дата входа в систему. Итак, если это кратно количеству секунд, прошедших с 1 января, AD 1, то пользователь вошел в систему в современное время, но вышел из системы около AD 200. Пожалуйста, расскажите нам все о вашем компьютере, путешествующем во времени. А еще лучше, предложите это как новый телесериал.
Ответ №1:
Вы должны добавить L в конце ввода .
Попробуйте следующий код.
public static void main(String[] args) {
long val = 634940995544109969L;
Date date=new Date(val);
System.out.println(DateFormat.getDateInstance().format(date));
}
Выходные данные будут в удобочитаемом формате.
Например: приведенный выше код выдаст 5 марта 20122449 в качестве выходных данных .
Миллисекунды преобразуются в дату.
Вы можете проверить правильность вывода по ссылке ниже
Комментарии:
1. Предполагая, что это
long
представляет миллисекунды с момента эпохи
Ответ №2:
Вы также можете преобразовать, используя приведенный ниже код
public static void main(String[] args) {
long lMilliSeconds = 634940995544109969L;
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(lMilliSeconds);
System.out.println(cal.getTime());
}
Примечание-: Я учел, что время задается в миллисекундах.
Выходные данные -: Пт, 05 марта, 07:45:09 IST 20122449
Ответ №3:
попробуйте следовать в c#
long a = 634940995544109969;
DateTime dt = new DateTime(a);
Console.WriteLine(dt.ToString("dd MMM yyyy"));