我想为日期值上瘾的某些数据创建一个小的GUI。所以我在JavaFX中使用<link href="something.domain.name/thing">
。所以我将使用以下代码获得所选时间:
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);
开始时间:2017-03-08 00:00
恩德:2017-03-08 23:59
https://www.reddit.com/r/screeps/comments/6jfjob/locations_not_valid_when_stored_in_memory/djdzgn1/
因此,为了获得开始和结束的时间,我必须手动选择两个日期。
是否有解决方案,自动生成给定的终结时间,例如在选择的开始时间后1小时?因此,编辑“时代”的“工作”较少,最好只选择一个日期。
感谢您的建议!他们工作得很好:)
System.out.println("Beginn: "+datum + " " + beginzeit);
System.out.println("Ende: "+datum + " " + endezeit);
但现在我知道,我的问题不正确,因为我仍然希望更改应用程序中的Enddate 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
之后的23:59:59h。但我的想法是将tbegin
设置为日期并自动将tbegin
设置为23:59:59h之后,但也可能更改为10:00:00h之后。但也许我必须创建一个按钮,它执行这些临时步骤。所以要理解,我想要什么,这里有一些图片:
所以它应该在我点击按钮之前给我带有Enddate的字段。并且应该可以将结束日期编辑为其他日期/时间。
答案 0 :(得分:3)
也许我误解了这个问题,但是只要MATCH (s1:Station)-[mode:TAXI|BUS|SCHIFF]-(neighbour)
WITH s1,
TYPE(mode) as mode,
COLLECT(DISTINCT neighbour) as neighbours
WITH s1,
CASE WHEN mode = 'TAXI' THEN size(neighbours) END AS AnzTaxi,
CASE WHEN mode = 'BUS' THEN size(neighbours) END AS AnzBus,
CASE WHEN mode = 'SCHIFF' THEN size(neighbours) END AS AnzSchiff
RETURN s1.id,
SUM(AnzTaxi) as AnzTaxi,
SUM(AnzBus) AS AnzBus,
SUM(AnzSchiff) AS AnzSchiff
ORDER BY AnzTaxi DESC, s1.id
发生变化,你就不能致电tend.setLocalDateTime(...)
吗?
即
tbegin.localDateTimeProperty()
另外,您不应该依赖字符串表示来从对象中提取数据。如果tbegin.localDateTimeProperty().addListener((obs, oldTime, newTime) ->
tend.setLocalDateTime(newTime.plusHours(1)));
方法的实现发生更改,您的代码将会中断。您还应该使用格式设置API将日期和时间转换为字符串,而不是依赖toString()
。你应该这样做,例如:
toString
答案 1 :(得分:1)
要在1小时后获得LocalDateTime
,请使用plusHours
方法:
LocalDateTime dt = LocalDateTime.now();
// new date 1 hour after dt
LocalDateTime newDt = dt.plusHours(1);
要控制输出格式,请使用DateTimeFormatter
:
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("dd.MM.yyyy HH:mm:ss");
System.out.println(formatter.format(dt));
此代码将输出(提醒它是我时区的当前日期/时间):
25.06.2017 17:42:50
对于其他情况,您无需使用replace
和substring
。只需使用格式化程序:
DateTimeFormatter fmt1 = DateTimeFormatter.ofPattern("HH:mm");
DateTimeFormatter fmt2 = DateTimeFormatter.ISO_DATE;
System.out.println(fmt1.format(dt));
System.out.println(fmt2.format(dt));
输出将是:
17时42
2017年6月25日
检查javadoc以获取有关输出模式的更多详细信息。
当您致电timebegin.plusHours(23).plusMinutes(59).plusSeconds(59)
时,您正在为该日期添加一段时间。如果timebegin
是10:00,则结果将是09:59:59
的第二天。
如果您想在23:59:59
设置完全的时间,您应该这样做:
LocalDateTime timeend = timebegin.with(LocalTime.of(23, 59, 59));
无论timeend
中的时间是什么,这都会在23:59:59
设置timebegin
。