我想为日期值中的一些数据创建一个小型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);
开始:2017-03-08 00:00
结束:2017-03-08 23:59
因此,为了获得开始和结束的时间,我必须手动选择这两个日期。
有没有一个解决方案,自动生成给定的结束时间,例如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");
但现在我知道,我的问题表达得不对,因为我仍然想更改应用程序中的EnddateTrend
。但是没有机会,因为它被固定在tbegin
之后的23:59:59小时。但我的想法是用日期设置tbegin
,并自动将tend
设置为23:59:59小时后,但也可能更改为10:00:00小时后。但也许我必须创建一个按钮,来完成这些过渡步骤。为了理解我想要的,这里有一些图片:
所以在我点击按钮之前,它应该给我一个带有结束日期的字段。应该可以将enddate编辑为其他日期/时间。
若要在1小时后获取LocalDateTime
,请使用plusHour
方法:
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
对于其他情况,您不需要使用替换
和子字符串
。也只需使用格式化程序:
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-06-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));
这将在23:59:59
设置timeend
,无论timebegin
中的时间是什么。
也许我误解了这个问题,但是当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);
问题内容: 在我正在开发的商店中,用户只有在创建帐户后才能看到价格并将产品添加到购物车。之后,他们可以将产品添加到购物车。帐单详细信息和交付详细信息选项将自动填写用户的地址。送货方式是免费的,付款方式是“货到付款”。 我如何自动选择这些选项并隐藏它们,所以剩下的唯一步骤就是确认订单? 我假设我需要更改的模板文件是,但是它几乎是1k行,并使用了我不知道的ajax。 我已经尝试了几个小时,所以任何帮助
我有一个<代码>材料数据包< /代码>,它选择了一系列数据,例如从<代码> 2021年1月1日到2021年1月31日< /代码>。 打开MaterialDatePicker时,会显示当前日期。当我尝试从2月滚动到1月时,一个月的最后一天是不可见的 要选择本月的最后一天,我应该向下滚动,但当我选择本月的最后一天时,应用程序崩溃,显示此错误: java.lang.NullPointerExcture:
我想创建一些表格与自动填充价格在输入框,但我不知道如何实现到我的代码。首先我有选择选项,然后选择选项后,输入框上的价格会自动生成,然后我输入折扣值,然后总价格会自动生成(基本价格-折扣%)。这是我的代码: null null
问题内容: 我想设置一个先前选择的要在页面加载时显示的选项。我用以下代码尝试了它: 与 但这是行不通的。有任何想法吗? 问题答案: 这绝对应该工作。确保已将代码放入:
我有一组AL约束来定位一个子vc,它有两个位置,展开和折叠。 我发现,当我添加折叠约束时,带有常量的上锚到下锚约束,当第一次创建vc时,当我激活它时,似乎有额外的间距。似乎是因为当时没有实际的高度。 当我在viewDidLayoutSubviews中添加约束时,额外的间距消失了,约束行为正常。除了现在在动画中的约束之间切换时,切换到展开约束和约束打断时,无法停用折叠的约束。可能是因为在整个过渡动画
我在viewcontroller的中央有一个UITextField(搜索字段),我正在使用UIView(liveView)创建一条细线。我以编程方式创建线视图及其约束。lineView本质上是一个下划线,当用户键入时,它在文本字段下的宽度会增加。用户按enter键后,我将调整约束,以便文本字段和视图移动到viewcontroller的顶部。我让它工作起来了,但随着线视图向上移动,它开始淡出并消失。