Как получить системное время в Java без создания новой даты
Мне нужно получить системную дату, а Java предоставляет "новую дату(). getTime()".
Но мне нужно избегать размещения новых объектов (я работаю над встроенной системой). Как я могу получить системное время без выделения нового объекта Date?
Ответ 1
Как говорит jzd, вы можете использовать System.currentTimeMillis. Если вам нужен объект Date, но вы не хотите создавать новый объект Date, вы можете использовать Date.setTime для повторного использования существующего объекта Date. Лично я ненавижу тот факт, что Date является изменяемым, но, возможно, он вам полезен в этом конкретном случае. Аналогично, Calendar имеет метод setTimeInMillis.
Если возможно, возможно, было бы лучше просто сохранить его как long. Если вам нужна только метка времени, то это лучший подход.
По крайней мере, в OpenJDK Date использует это под обложками.
Вызов System относится к собственному методу JVM, поэтому мы не можем точно сказать, что распределение не происходит под обложками, хотя здесь это маловероятно.
Ответ 4
Используйте System.currentTimeMillis() или System.nanoTime().