试图写一个空手道DSL逻辑,其中,我需要一个日期在yyyy-mm-dd格式。如果日期是星期六,则应将2天添加到当前日期,如果日期是星期日,则添加1天。这是一个我正在尝试的东西,但它不起作用。
* def logic =
"""
function() {
var date = function() {
var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
var sdf = new SimpleDateFormat('yyyy-MM-dd');
return sdf.format(new java.util.Date());
}
var SimpleDateFormat = Java.type('java.text.SimpleDateFormat');
var sdf = new SimpleDateFormat('EEEE');
var day = sdf.format(new java.util.Date());
var c = Java.type('java.util.Calendar');
if (day== 'Saturday')
return Calendar.add(date(),2);
}
"""
遗留的日期-时间API(java.util
日期-时间类型及其格式API,SimpleDateFormat
)已经过时并且容易出错。建议完全停止使用它,并切换到java.time
,即现代的日期时间API*。
使用现代API的解决方案:
import java.time.DayOfWeek;
import java.time.LocalDate;
import java.time.ZoneId;
import java.time.format.TextStyle;
import java.util.Locale;
public class Main {
public static void main(String[] args) {
// Current date
// Change the JVM's default ZoneId as applicable e.g. ZoneId.of("Asia/Kolkata")
LocalDate date = LocalDate.now(ZoneId.systemDefault());
if (date.getDayOfWeek() == DayOfWeek.SATURDAY)
date = date.plusDays(2);
else if (date.getDayOfWeek() == DayOfWeek.SUNDAY)
date = date.plusDays(1);
System.out.println(date);
// Print day name
System.out.println(date.getDayOfWeek().getDisplayName(TextStyle.FULL, Locale.ENGLISH));
}
}
输出:
2021-05-10
Monday
*无论出于什么原因,如果您必须坚持Java6或Java7,您都可以使用ThreeTen-Backport,它将大部分Java.time功能后端到Java6和7。如果您正在为一个Android项目工作,并且您的Android API级别仍然不符合Java-8,那么通过desugaring检查Java8+API可用,以及如何在Android项目中使用ThreeTenABP。
这将产生。但我需要的是。我的目的是使用Hibernate标准将此日期与数据库中的另一个日期进行比较。所以我需要格式的date对象。
我有一个格式为。我希望它的格式为 下面是我尝试进行此转换的示例util: 但是,我得到的输出不是格式。 请告诉我如何将从格式化为
我正在进行JavaScript验证,验证文本框的日期是否等于当前日期。 如果大于或等于今天的日期,则显示错误消息。 注意:在我的中,我已将日期转换为格式。所以我需要检查date与格式的当前日期。这是我的代码: 我需要使用日期的格式来检查我的文本框中的日期,因此我今天的值只能使用日期的格式。
问题内容: 如何检查SQL Server中日期字符串是否为MM / DD / YYYY格式? 问题答案: 如果结果为1,则为有效日期,但不能保证其为用户指定的日期。如果他们输入: 没有办法知道是6月7日还是7月6日。最好的办法是让用户从下拉列表或日历控件中选择日期,这使您可以控制格式并避免不必要的解释。您的应用程序层可以使用强类型变量/参数,然后插入正确类型的列中。
问题内容: 我正在尝试从转换日期。我已经使用了mktime()函数和其他函数,但是我似乎无法使其工作。我已经成功地将原始日期用作定界符,但更改格式并将其与交换时没有成功。 任何帮助将不胜感激。 问题答案: 通过查看各个组成部分之间的分隔符,可以消除或格式中的日期的歧义:如果该分隔符是斜杠(),则假定为American ;否则,为0。反之,如果分隔符是破折号()或点(),则采用欧洲格式。 使用默认的