[英]Day Name for a calculated date
嗨我是Java的新手,我正在尝试为计算日期锻炼日名。 我使用Esko Automation Engine来运行我的Java
如果我根据实际日期创建一个JavaScript脚本,则使用以下函数:
function f () {
var date = new Date().toString().split(' ')[0];
return date;
}
f ();
但是当我尝试用另一个计算日期替换新的Date()时,它失败了。 计算出的日期显示如下:05/02/19 10:00 am并从xml文件中删除。 这被命名为ScotlandDeliveryDate
function f () {
var date = ScotlandDeliveryDate ().toString().split(' ')[0];
return date;
}
f ();
结果:
javax.script.ScriptException: <eval>:4:25 Missing space after numeric literal
var date = 05/02/19 10:00am().toString().split(' ')[0];
^ in <eval> at line number 4 at column number 25
有没有人有任何想法。
我对“Esko”一无所知。 但是在上面给出的示例中,您尝试在另一个SmartName的定义中使用一个SmartName( ScotlandDeliveryDate
)。 在下面的链接中,它们似乎表明这是通过将SmartName括在括号中来完成的。
所以我认为你的代码需要看起来像这样:
function f () {
return '[ScotlandDeliveryDate]'.split(' ')[0];
}
f ();
但是,从您的错误消息中,看起来[ScotlandDeliveryDate]
将于05/02/19 10:00am
返回; 如果是这种情况,那么将该值拆分为空格然后抓取第一个值仍然不会得到日期名称。
要做到这一点,你需要这样的东西:
function f () {
var monthDayYear = '[ScotlandDeliveryDate]'.split(' ')[0];
var dateTimeStamp = Date.parse(monthDayYear);
var dateObject = new Date(dateTimeStamp);
return new Intl.DateTimeFormat('en-US', {weekday:'long'}).format(dateObject);
}
f ();
或者,没有Intl对象:
function f () {
var dayNames = [
'Sunday',
'Monday',
'Tuesday',
'Wednesday',
'Thursday',
'Friday',
'Saturday'
];
var monthDayYear = '[ScotlandDeliveryDate]'.split(' ')[0];
var dateTimeStamp = Date.parse(monthDayYear);
var dateObject = new Date(dateTimeStamp);
var dayNumber = dateObject.getDay();
return dayNames[dayNumber];
}
f ();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.