[英]How to add Java long suffix l
我實際上在努力如何將“ L”后綴添加到長值中。
JSON服務為我提供了以秒為單位的時間戳。 在我的輸出中,我想以一種易讀的格式花費一秒鍾的時間。 因此,我想使用SimpleDateFormat,它需要以毫秒為單位的時間戳。
因此,我得到了以秒為單位的值1545151800。 要將我帶入毫秒數,它將是(* 1000)1545151800000
因為很長,所以它的值應為1545151800000L。
如何完成將“ L”添加到我的值? 無法將一些字符添加到long中。 如果我不在乎“ L”后綴,則會得到不同的(錯誤的)結果。
String humanDateOfData = Instant.ofEpochSecond(timeOfData)
.atZone(ZoneId.systemDefault())
.format(dateFormatter);
您可以在類中只聲明一次日期格式化程序,而不是為每次toString
調用創建一個新的日期格式化程序:
static DateTimeFormatter dateFormatter
= DateTimeFormatter.ofPattern("dd/MM/uuuu", Locale.US);
在我在歐洲/哥本哈根時區電腦這給了humanDateOfData
的18/12/2018
,你現在可以在返回值從使用toString
。
在這種情況下,的代碼比您擁有的代碼長,但是我仍然熱烈推薦它。 您使用的日期和時間類Date
和SimpleDateFormat
設計得很差,而后者卻很麻煩。 他們也早已過時。 相反,我使用的是java.time,這是2014年推出的現代Java日期和時間API。而且,乘以1000似乎很簡單,但是自己進行時間轉換通常很復雜且容易出錯,因此這是一個壞習慣進入。 Instant
從該紀元以來直接接受秒,因此不再需要它。 最后,現代代碼清楚地表明,我喜歡使用時區來確定日期。 如果您知道時區,則還可以指定哪個時區,例如ZoneId.of("Asia/Harbin")
。
休息 時間 : Oracle Tutotial:日期時間
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.