gpt4 book ai didi

选择 Start-LocalDateTime 后,JavaFX 自动设置 End-LocalDateTime

转载 作者:行者123 更新时间:2023-11-29 08:35:00 27 4
gpt4 key购买 nike

我想为一些沉迷于日期值的数据创建一个小型 GUI。所以我在 JavaFX 中使用 LocalDateTimeTextField。所以我将使用以下代码获取选定的时间:

LocalDateTimeTextField tend;
LocalDateTimeTextField tbegin;

String en = tend.getLocalDateTime().withSecond(0).toString();
String ende = en.replaceAll("T", " ");
String endezeit = ende.substring(11, 16);
String be = tbegin.getLocalDateTime().withSecond(0).toString();
String begin = be.replaceAll("T", " ");
String beginzeit = begin.substring(11, 16);
String datum = begin.substring(0, 10);

作为输出,我将得到:

System.out.println("Beginn:    "+datum + " " + beginzeit);
System.out.println("Ende: "+datum + " " + endezeit);

Beginn: 2017-03-08 00:00
Ende: 2017-03-08 23:59

Choosen Time

因此,为了获得开始时间和结束时间,我必须手动选择这两个日期。

是否有解决方案,可以自动生成给定的结束时间,例如在选择的开始时间后 1 小时?这样我编辑《泰晤士报》的“工作”就更少了,最好的情况下只需选择一个日期。


感谢您的建议!他们工作正常:)

    LocalDateTime timebegin = tbegin.getLocalDateTime().withSecond(0);
LocalDateTime timeend = timebegin.plusHours(23).plusMinutes(59).plusSeconds(59);
LocalDate datum = timebegin.toLocalDate();
LocalTime start = timebegin.toLocalTime().plusSeconds(0);
LocalTime ende = timeend.toLocalTime();
tend.setLocalDateTime(timeend);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss");

但现在我知道,我的问题表达不当,因为我仍然想更改应用程序中的结束日期 tend。但是没有机会,因为它在 tbegin 之后固定为 23:59:59h。但我的想法是为 tbegin 设置一个日期并自动将 tend 设置为 23:59:59h 之后,但也可能更改为 10:00:00h 之后.但也许我必须创建一个按钮来执行这些临时步骤。所以要理解,我想要什么,这里有一些图片:

Before/After clicking the Button

所以它应该在我单击按钮之前为我提供带有结束日期的字段。并且应该可以将结束日期编辑为其他日期/时间。

最佳答案

也许我误解了这个问题,但你不能在 tbegin.localDateTimeProperty() 发生变化时简单地调用 tend.setLocalDateTime(...) 吗?

tbegin.localDateTimeProperty().addListener((obs, oldTime, newTime) -> 
tend.setLocalDateTime(newTime.plusHours(1)));

顺便说一句,您不应该依赖字符串表示来从对象中提取数据。如果 toString() 方法的实现发生变化,您的代码将会中断。您还应该使用格式化 API 将日期和时间转换为字符串,而不是依赖于 toString。你应该这样做,例如:

LocalDateTime end = tend.getLocalDateTime();

// if you need these:
LocalDate endDate = end.toLocalDate();
LocalTime endTime = end.toLocalTime();

// to display:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("uuuu-MM-dd HH:mm");
String stringEnd = formatter.format(end);

关于选择 Start-LocalDateTime 后,JavaFX 自动设置 End-LocalDateTime,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44749960/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com