java joda_java-Jodatime的开始时间和结束时间
對于那些來這里尋找“ js-joda”答案的人,您有兩種選擇,具體取決于要完成的工作
選項1:您希望同一時區的一天開始
由于您已選擇根據與時區相關的即時時間來計算時間,因此應使用ZonedDateTime:
import { ZonedDateTime, LocalDate, ZoneId, DateTimeFormatter} from "js-joda";
import 'js-joda-timezone';
const nowInNewYorkCity = ZonedDateTime.now(ZoneId.of("America/New_York"))
const startOfTodayInNYC = nowInNewYorkCity.truncatedTo(ChronoUnit.DAYS);
console.log(startOfTodayInNYC.toString()) // Prints "2019-04-15T00:00-04:00[America/New_York]"
// And if you want to print it in ISO format
console.log(startOfTodayInNYC.format(DateTimeFormatter.ISO_INSTANT)) // "2019-04-14T04:00:00Z"
選項2:您知道要獲取確切時間的確切日期
然后,您可以使用LocalDate之外的以下方法來得出您想要的相對時間(即ZonedDateTime):
atStartOfDay(): LocalDateTime
atStartOfDay(zone: ZoneId): ZonedDateTime
atStartOfDayWithZone(zone: ZoneId): ZonedDateTime
選項3:我只希望即時發生的那一天
注意使用此代碼,您將獲得相對于您所處位置的一天。 因此對于紐約市的人來說,它是“ 2019-04-14”,對于倫敦的人來說,它是“ 2019-04-15”(太好了!),因為時刻是在該時間段內 實際上是明天在倫敦(“ 2019-04-15T00:00:05Z”)。 假裝您是從紐約市打電話給倫敦的某人,倫敦人會說:“老兄,您為什么這么早給我打電話……已經是午夜5秒鐘了。”
import { ZonedDateTime, LocalDate, ZoneId} from "js-joda";
import 'js-joda-timezone';
const aTimeWhenLondonIsAlreadyInTomorrow = "2019-04-15T00:00:05.000Z";
const inBetweenTimeInLondon = ZonedDateTime.parse(aTimeWhenLondonIsAlreadyInTomorrow);
const inBetweenTimeInNYC = inBetweenTimeInLondon.withZoneSameInstant(ZoneId.of("America/New_York"))
const dayInLondon = inBetweenTimeInLondon.toLocalDate();
const dayInNYC = inBetweenTimeInNYC.toLocalDate();
console.log(inBetweenTimeInLondon.toString()); // "2019-04-15T00:00:05Z"
console.log(dayInLondon.toString()); // "2019-04-15"
console.log(inBetweenTimeInNYC.toString()) // "2019-04-14T20:00:05-04:00[America/New_York]"
console.log(dayInNYC.toString()); // "2019-04-14"
參考:[https://js-joda.github.io/js-joda/class/src/LocalDate.js~LocalDate.html#instance-method-atStartOfDayWithZone]
總結
以上是生活随笔為你收集整理的java joda_java-Jodatime的开始时间和结束时间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java wmi远程桌面服务器_WMI实
- 下一篇: java 不定参数方法_java中不定长