[英]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.