标签: java-time

为什么LocalDateTime可以返回实例?

LocalDateTime抽象类.所以我写不出来:

LocalDateTime value = new LocalDateTime(); //error
Run Code Online (Sandbox Code Playgroud)

如果我想得到它的实例,我必须写:

LocalDateTime value = LocalDateTime.now(); //not error
Run Code Online (Sandbox Code Playgroud)

我有一个问题,为什么LocalDateTime可以返回实例?这是一个抽象类.

我看到了概述,但我找不到它......

java abstract-class abstract java-8 java-time

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

LocalDateTime.of 返回 null

我正在尝试对使用java.time.LocalDateTime. 我能够让模拟工作,但是当我增加时间(分钟或天)时,我最终会得到一个null值。

@RunWith(PowerMockRunner.class)
@PrepareForTest({ LocalDateTime.class })
public class LocalDateTimeMockTest
{
    @Test
    public void shouldCorrectlyCalculateTimeout()
    {
        // arrange
        PowerMockito.mockStatic(LocalDateTime.class);
        LocalDateTime fixedPointInTime = LocalDateTime.of(2017, 9, 11, 21, 28, 47);
        BDDMockito.given(LocalDateTime.now()).willReturn(fixedPointInTime);

        // act
        LocalDateTime fixedTomorrow = LocalDateTime.now().plusDays(1); //shouldn't this have a NPE?

        // assert
        Assert.assertTrue(LocalDateTime.now() == fixedPointInTime); //Edit - both are Null
        Assert.assertNotNull(fixedTomorrow); //Test fails here
        Assert.assertEquals(12, fixedTomorrow.getDayOfMonth());
    }
}
Run Code Online (Sandbox Code Playgroud)

我明白(我想我明白)这LocalDateTime是不可变的,我认为我应该得到一个新实例而不是null值。

原来是.of方法给了我一个null价值。为什么?

java datetime mockito java-time powermockito

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

如何在 Java 中自定义 HH:mm 格式

我正在使用HH:mm格式在 java 中打印小时和分钟。它会给格式的时间 05:1200:04。但我的要求是获得个位数的小时数:

05:12 => 5:12
00:04 => 0:04  
10:18 => 10:18
Run Code Online (Sandbox Code Playgroud)

下面我有我正在运行以生成日期的代码,

import java.time.LocalTime;
import java.time.format.DateTimeFormatter;

public class TestDateUtil {

    public static void main(String ar[]) {
        LocalTime time = LocalTime.now();
        String t = time.format(DateTimeFormatter.ofPattern("HH:mm"));
        System.out.println(t);  

    }
} 
Run Code Online (Sandbox Code Playgroud)

我知道我可以使用字符串操作在 : 的基础上进行时间分割,然后改变它,但这也需要更多的条件检查变化,我不想这样做。有什么办法吗?

java time-format localtime timeofday java-time

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

Java 处理多个输入的日期时间格式

需要一些建议来解决我的问题。我有两种格式的日期输入(input1 和 input2)。

String input1="12-1-2012 T 10:23:34";
String input2="20-10-2012 T 10:34:22";

String format = "dd-MM-yyyy T HH:mm:ss";

SimpleDateFormat sdf= new SimpleDateFormat(format);
Run Code Online (Sandbox Code Playgroud)

如何使用 sdf 对象处理 input1 和 input2 以生成 dd-MM-yyyy T HH:mm:ss 形式的结果

java java-time

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

不支持的参数值:“YEARS”

我想运行这段代码:

final LocalTime currentTime = LocalTime.now().plus(2, ChronoUnit.YEARS);
long milliseconds = currentTime.toNanoOfDay() / 1000000;
String s = Long.toHexString(milliseconds).toUpperCase();
Run Code Online (Sandbox Code Playgroud)

我收到错误:

Unsupported argument value: 'YEARS'你知道我该如何解决这个问题吗?

java java-time

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

Java 周期返回 2 个日期之间的错误天数

我有以下代码来计算 2 天之间的天数差异,01/09/2023 and 02/10/2023预期结果是 31 天,但代码返回 1 天。

LocalDate from = LocalDate.of(2023, 9, 1);
LocalDate to = LocalDate.of(2023, 10, 02);

Period period = Period.between(from, to);

System.out.print(period.getYears() + " years,");
System.out.print(period.getMonths() + " months,");
System.out.print(period.getDays() + " days");
Run Code Online (Sandbox Code Playgroud)

输出 :

0 years,1 months,1 days
Run Code Online (Sandbox Code Playgroud)

谁能告诉我我的代码有什么问题

java java-time

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

在java 8中是否有一个用于temporal的isAfter方法

我知道有isAfter两种方法LocalDateTimeLocalDate.

然而,如果我可以混合这些类,即LocalDate.isAfter(LocalDateTime)不将其中一个类转换为另一个类,它将使我的生活更容易.

java java-8 java-time

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

"尝试计算两个日期之间的天数差异时,找不到(日期,日期)之间的合适方法

如何计算用户之前从jXDatePickerswing组件中选择的对象的当前日期和日期之间的差异以及已添加Date到该对象的对象.

在我最后一行的当前代码中,我收到此错误消息:

找不到合适的方法(日期,日期)

Date currentDate = new Date();          
Date objDate = obj.getSelectedDate(); //getting date the user had 
                                      //previously selected and that been 
                                      //added to object      
long daysDifference = ChronoUnit.DAYS.between(objDate, currentDate);
Run Code Online (Sandbox Code Playgroud)

java compiler-errors date java.util.date java-time

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

java 8中的Periods类实现

如果我这样编码:

Period wrong = Period.ofYears(1).ofWeeks(1);
Run Code Online (Sandbox Code Playgroud)

它给出了输出P7D.

通过Period类的实现,我们知道所有of____()方法都是静态的.

但是,如果你与DateTime班级做同样的链接:

LocalDate date = LocalDate.of(2020, Month.JANUARY, 20);
LocalTime time = LocalTime.of(5, 15);
LocalDateTime dateTime = LocalDateTime.of(date, time)
  .minusDays(1).minusHours(10).minusSeconds(30);
Run Code Online (Sandbox Code Playgroud)

All minus___()plus___()方法是LocalDateTime类中的实例方法.

问题:为什么课程不允许进行方法链接Period

为什么Period班级不支持?

内部任务如何进行?

java class period method-chaining java-time

-2
推荐指数
3
解决办法
578
查看次数

Scala:两个日期之间相差的月数

我有两个分别String包含值的变量"201703""201506"即值的格式为,"yyyyMM"但类型变量为String。我想使用Scala和JDK 8找出这两个日期在数月中的区别。

输入示例:

val x = "201506"
val y = "201703"
Run Code Online (Sandbox Code Playgroud)

所需的输出:

21    
Run Code Online (Sandbox Code Playgroud)

java scala java-time

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