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

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());

LocalDateTime ⇒ エポック秒

long l = LocalDateTime.now().atZone(ZoneId.systemDefault()).toEpochSecond();

LocalDateTime ⇒ エポックミリ秒

long l = LocalDateTime.now().atZone(ZoneId.systemDefault()).toInstant().toEpochMilli();

=====================================
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)
# もしくは、datetime.fromtimestamp(int) を使って
dtime = atetime.fromtimestamp(dtime) 

# 現在エポックミリ秒
epocmili = int(datetime.now().timestamp() * 1000)
print(epocmili)
# もしくは、int(time.time() * 1000)

# 時刻文字列→ エポック秒
dt = datetime.strptime(string, '%Y-%m-%d %H:%M:%S')
epoch = int(time.mktime(dt.timetuple()))