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.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价值。为什么?
我正在使用HH:mm格式在 java 中打印小时和分钟。它会给格式的时间
05:12,00: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)
我知道我可以使用字符串操作在 : 的基础上进行时间分割,然后改变它,但这也需要更多的条件检查变化,我不想这样做。有什么办法吗?
需要一些建议来解决我的问题。我有两种格式的日期输入(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 形式的结果
我想运行这段代码:
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'你知道我该如何解决这个问题吗?
我有以下代码来计算 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)
谁能告诉我我的代码有什么问题
我知道有isAfter两种方法LocalDateTime和LocalDate.
然而,如果我可以混合这些类,即LocalDate.isAfter(LocalDateTime)不将其中一个类转换为另一个类,它将使我的生活更容易.
如何计算用户之前从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) 如果我这样编码:
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班级不支持?
内部任务如何进行?
我有两个分别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)