エポック秒とエポックミリ秒

Java エポック秒とエポックミリ秒、特にエポックミリ秒は、System.currentTimeMillis() で取得するのが、
いいのか?Instant の toEpochMilli() を使うべきなのか?
未だにわからない。
エポック秒

long epocsec = Instant.now().getEpochSecond();
LocalDateTime nowtime
 = Instant.ofEpochSecond(epocsec).atZone(ZoneId.systemDefault()).toLocalDateTime();

OR

LocalDateTime nowtime
 = LocalDateTime.ofEpochSecond(epocsec, 0, ZoneId.systemDefault().getRules().getOffset(Instant.now()));

エポックミリ秒

long epocmili = System.currentTimeMillis();
long epocmili = Instant.now().toEpochMilli();
LocalDateTime nowtime
= Instant.ofEpochMilli(epocmili).atZone(ZoneId.systemDefault()).toLocalDateTime();

OR

LocalDateTime nowtime
= LocalDateTime.ofInstant(Instant.ofEpochMilli(epocmili), ZoneId.systemDefault());

=====================================
Python

from datetime import datetime
import time

# 現在エポック秒
epoch = int(time.mktime(datetime.now().timetuple()))
print(epoch)

# エポック秒 → datetime
dtime = datetime(*time.localtime(epoch)[:6])
print(dtime)

# 現在エポックミリ秒
epocmili = int(datetime.now().timestamp() * 1000)
print(epocmili)