标签: java-time

如何从 Temporal 获取时区?

interface SomeDataClass {
  TemporalAccessor getSomeTime();
}

//somewhere in the impl...
public TemporalAccessor getSomeTime() {
  return OffsetDateTime.from(dateTimeFormatter.parse(someDateInstring));
}
Run Code Online (Sandbox Code Playgroud)

有谁知道如何从这个TemporalAccessor接口获取时区数据?

java temporal java-8 java-time

1
推荐指数
1
解决办法
1386
查看次数

java中的方法 DateTime.now() 和 new DateTime(System.currentTimeMillis()) 是否相同?

我需要知道,在java(我的版本jdk 8)中,我可以替换,new DateTime(System.currentTimeMillis())这个代码形式,' DateTime.now()'?

我用过包import org.joda.time.DateTime;

如何在java 8中写同样的东西(日期和时间)?

java datetime date jodatime java-time

1
推荐指数
1
解决办法
2929
查看次数

根据特定值对 ArrayList<DayOfWeek> 进行排序

我有一个ArrayList<DayOfWeek>让我们说["MONDAY","WEDNESDAY","FRIDAY"]

我的目标是以DayOfTheWeek循环方式基于 a 对其进行排序。

输入: "WEDNESDAY"

排序列表: ["WEDNESDAY","FRIDAY","MONDAY"]

该列表保证从周一到周日排序。不能保证输入日期在列表中,在这种情况下,排序从列表中的下一个值开始。

java arraylist rotation dayofweek java-time

1
推荐指数
2
解决办法
132
查看次数

为什么 java.util.Calendar 在 2021 年 2 月返回 31?

以下代码段返回:

28
31
Run Code Online (Sandbox Code Playgroud)

我想不通,为什么。我尝试通过两种方式将日历对象设置为 2021 年 2 月,我做错了什么?月份是从零开始的,所以二月是“1”。

import java.util.Calendar;
import java.util.GregorianCalendar;

public class HelloWorld{

     public static void main(String []args){
        Calendar g = new GregorianCalendar(2021, 1, 28);
        System.out.println(g.getActualMaximum(Calendar.DAY_OF_MONTH));
        

        int year = 2021;
        int month = 1;
        Calendar c = Calendar.getInstance();
        c.set(Calendar.YEAR, year);
        c.set(Calendar.MONTH, month);
        System.out.println(c.getActualMaximum(Calendar.DAY_OF_MONTH));
     }
}
Run Code Online (Sandbox Code Playgroud)

或者这只会发生,因为我在 3 月 29、30 或 31 日调用 Calendar.getInstance() 而我没有调用

c.set(Calendar.DAY_OF_MONTH, {any day below 29});
Run Code Online (Sandbox Code Playgroud)

java calendar date java-time

1
推荐指数
2
解决办法
367
查看次数

Java LocalDate 在调用 plusDays plusMonths 和 plusYears 时得到两种不同的结果

大家好,我有这样的代码

public static void main(String[] args) {
    System.out.println(LocalDate.now().plusYears(1).plusMonths(6).plusDays(5));
    System.out.println(LocalDate.now().plusDays(5).plusMonths(6).plusYears(1));
}
Run Code Online (Sandbox Code Playgroud)

我得到两个不同的结果

2022-10-31
2022-11-01
Run Code Online (Sandbox Code Playgroud)

有人可以解释为什么吗?谢谢

java java-8 java-time localdate

1
推荐指数
1
解决办法
52
查看次数

我如何将 String.split 转换为 int

    String nDate;
    String dateTemp;
    int i;

    nDate = kb.nextLine();
    String[] temp = nDate.split("-");
    int numDate = Integer.parseInt(String.valueOf(temp));
Run Code Online (Sandbox Code Playgroud)

我在最后一行的 (temp) 部分有问题。例如,如果我的输入是“06-21-2020”,我想要发生的是它变成“06212020”

java string date java-time localdate

1
推荐指数
1
解决办法
87
查看次数

Java ZonedDateTime 不会将 UTC 调整为本地区域

这段代码:

String dateString = "20210811T021500Z";
String dateFormat = "yyyyMMdd'T'HHmmss'Z'";

System.out.println(LocalDateTime.parse(dateString, dateFormat).toString());
System.out.println(LocalDateTime.parse(dateString, dateFormat).atZone(ZoneId.of("Europe/Budapest")).toString());
System.out.println(ZonedDateTime.of(LocalDateTime.parse(dateString, dateFormat), ZoneId.of("Europe/Budapest")).toString());
Run Code Online (Sandbox Code Playgroud)

输出这个:

2021-08-11T02:15
2021-08-11T02:15+02:00[Europe/Budapest]
2021-08-11T02:15+02:00[Europe/Budapest]
Run Code Online (Sandbox Code Playgroud)

如何打印调整后的时间?我希望结果是2021-08-11T04:15.

java java-time zoneddatetime localdatetime

1
推荐指数
1
解决办法
45
查看次数

从给定字符串获取 LocalDateTime 对象?

"2021-09-17 11:48:06 UTC"
Run Code Online (Sandbox Code Playgroud)

我想解析以下字符串并创建一个LocalDateTime对象或Instant

我知道你可以写这样的东西

String dateTime = "2021-09-17 11:48:06 UTC";
LocalDateTime dt = LocalDateTime.parse(dateTime,DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");
Run Code Online (Sandbox Code Playgroud)

如何处理UTC字符串中的部分?

java java-time localdatetime

1
推荐指数
1
解决办法
458
查看次数

java中如何从当前月份获取上个月?

我有以下场景。

String currentMonth = SEP/2021
Run Code Online (Sandbox Code Playgroud)

在这里我想要String previous month = AUG/2021.

我怎样才能在java中实现这一点?

java calendar date java-time yearmonth

1
推荐指数
1
解决办法
927
查看次数

Java YearMonth 不会解析,但只能在我的电脑上?

我一直在从事一个项目,需要我以这种方式解析字符串,我已经分离出了引发错误的小部分,


import java.time.YearMonth;
import java.time.format.DateTimeFormatter;

public class TestingYearMonth {

    public static void main(String[] args) {
        
           YearMonth yearMonth = YearMonth.parse("Feb-17", DateTimeFormatter.ofPattern("MMM-yy"));
            System.out.println(yearMonth.getMonth() + " " + yearMonth.getYear());
        
    }
}
Run Code Online (Sandbox Code Playgroud)

我的老师运行完全相同的代码,它返回输出没有问题。但是当我运行它时出现以下错误

Exception in thread "main" java.time.format.DateTimeParseException: Text 'Feb-17' could not be parsed at index 0
    at java.base/java.time.format.DateTimeFormatter.parseResolved0(DateTimeFormatter.java:2046)
    at java.base/java.time.format.DateTimeFormatter.parse(DateTimeFormatter.java:1948)
    at java.base/java.time.YearMonth.parse(YearMonth.java:295)
    at com.ethanbradley.assignment6.TestingYearMonth.main(TestingYearMonth.java:10)
Run Code Online (Sandbox Code Playgroud)

我们检查了一下,我的 jdk 很好(jdk 11,亚马逊 coretto 版本),我真的不明白为什么这不起作用,请帮助哦明智的互联网人们......

java parsing java-time java-11

1
推荐指数
1
解决办法
410
查看次数