有没有办法自动完成YYYY-MM-DD格式的日期,其中输入字段只需要MM-DD。Java自动完成/格式MM-DD输入的日期
除非月和日过去,否则今年将是当年。
实施例:
的输入 “06-28” 将输出2017年6月28日
,如果日期是在过去,
输入 “04-30” 输出2018- 04-30
的代码将被写入HTML或Java
感谢您的帮助和抱歉,如果我失去了一些东西。
有没有办法自动完成YYYY-MM-DD格式的日期,其中输入字段只需要MM-DD。Java自动完成/格式MM-DD输入的日期
除非月和日过去,否则今年将是当年。
实施例:
的输入 “06-28” 将输出2017年6月28日
,如果日期是在过去,
输入 “04-30” 输出2018- 04-30
的代码将被写入HTML或Java
感谢您的帮助和抱歉,如果我失去了一些东西。
这就是java.time
类擅长的地方。
public static LocalDate autocomplete(String mmdd) {
ZoneId clientTimeZone = ZoneId.systemDefault();
LocalDate today = LocalDate.now(clientTimeZone);
MonthDay md = MonthDay.parse(mmdd, DateTimeFormatter.ofPattern("MM-dd"));
Year y = Year.from(today);
if (md.isBefore(MonthDay.from(today))) {
// in the past; use next year
y = y.plusYears(1);
}
return y.atMonthDay(md);
}
请注意依赖于时区。仔细想想你应该使用哪个区域。
如果您需要结果作为String
,请使用toString()
。
案例:该方法将接受02-29
作为有效输入,如果所选年份不是闰年,将自动填充到2月28日的日期。除非明年2月有29天,否则您可能需要修改它以拒绝02-29
。
你能告诉我这个代码如何与HTML输入文本框一起工作吗? –
不是我,我很害怕。 @ZachHunter很久以前,这是我的主场(我希望你不是指JavaScript,因为这是不同的)。 –
为什么不写一个简单的函数来检查当前日期,并基于该年自动完成?
@ Ethan Gills-写这个函数实际上是我需要帮助的。我的好友为我创建了一个使用日期选择器的HTML事物,但我将输入数千个日期,而日期选择器耗时过长。谢谢 –
当然,这听起来应该是可能的。尽管如此,您所指的是哪种语言并不是很明显。标签和标题之间存在一些混淆。 PHP? Java的? _JavaScript_? (只是猜测你_might_是指基于其他标签的JavaScript而不是Java。) –
感谢您花时间做出回应。明天当我的IT朋友进来工作时,我会编辑这个问题。这是他为我创建的自定义.php网站表单。我会重新提出这个问题或者编辑这个问题来更加简洁。 –
如果日期过去,您如何知道要打印哪一年?为什么打印未来一年? –