Введение
Я пытаюсь получить разницу в секундах от двух эпох
1009 * то есть *
2019-05-22 18:28:56 -> 1558542536 секунд
2019-07-22 19:00:00 -> 1563814800 секунд
Разница будет: 5,272,264 секунды
Этот формат даты происходит из двоичного файла в виде строки
Мой код
public static void main(String[] args) throws ParseException
{
String regEpoch = "";
long result = 0;
//System.out.println((fecha = dateFormat.format(date)));
try(RandomAccessFile raf = new RandomAccessFile("binario2.txt", "rw")){
//user inputs a code (for now, doesn't matter if exists or not)
System.out.print("Input a code to look for: ");
String code = scan.next();
while(!code.matches("\\d+"))
{
System.out.println("[ERROR] Only digits accepted");
System.out.print("Input a code to look for: ");
code = scan.next();
}
//Gets the current date in seconds
long getSecs = (new Date().getTime())/1000;
System.out.println("Current tiem in secs: " + getSecs);
//We are "randomly accessing" a binary file. The is no problem here at all. It just works.
//Sets the pointer where I want it, again... this works fine.
raf.seek(27+(80*Integer.parseInt(code)));
//Read the String date correctly, which is 2019-05-22 18:28:56
System.out.println(raf.readUTF());
/*
//Attempt 2
System.out.println(java.time.Instant.ofEpochSecond(Long.parseLong(raf.readUTF())));
Long millis = new SimpleDateFormat("yyyy/MM/ss hh:mm:ss").parse(raf.readUTF()).getTime();
System.out.println(millis);
*/
//Let's try to convert it into seconds... No we can't due to -> Unparseable date: "2019-05-22 18:28:56"
Date dt = dateFormat.parse(raf.readUTF());
long epoch = dt.getTime();
System.out.println("Result is: " + (int)(epoch*1000));
}catch(IOException e){System.out.println("[ERROR] " + e);}
}
Проблема
Я прочитал много вопросов о том, как превратить секунды в эпоху, но как насчет обратного?
- Нужно ли делать это вручную?
- Есть ли какая-нибудь библиотека, о которой я не слышал?
Пока что то, что я пробовал, получает только секунды от Date с SimpleDateFormat, но это не то, что я ожидал ...
Что я ожидаю от этого
В настоящее время я делаю домашнее задание, и мне нужно было рассчитать стоимость парковочного талона, и я подумал, а что, если машина не уедет, скажем ... через неделю?
Если я работаю только в формате hh:mm:ss
, те автомобили, которые останутся там целую неделю, будут платить только за один день.