[英]How to convert Date String to Calendar Date using Groovy in MarkupBuilder?
[英]groovy change calendar date
我正在嘗試從switch語句中的cal
獲取輸出,但是它給了我當前日期,我在做什么錯呢? 一個解釋也將不勝感激。 謝謝。
import static java.util.Calendar.*
import java.sql.Timestamp.*
every = 4 //testing
period = 'weeks(s)' //testing
if (every && period){
def cal = Calendar.instance
def addTime
addTime = cal.time
switch (period) {
case "day(s)":
cal[DATE] = cal[DATE] + every
addTime = cal.time
break
case "weeks(s)":
cal[DATE] = cal[DATE] + every*7
addTime = cal.time
break
case "month(s)":
cal[DATE] = cal[MONTH] + every
addTime = cal.time
break
case "year(s)":
cal[YEAR] = cal[YEAR] + every
addTime = cal.time
break
case "day of the month":
cal[MONTH] = cal[MONTH] + 1
cal[DATE] = every
addTime = cal.time
break
}
java.sql.Timestamp newTimestamp = new java.sql.Timestamp(addTime.getTime());
dueDate = newTimestamp
}
println dueDate
例如,此腳本可以正確執行工作,例如我的dueDate
,但在newTimestamp
行中進行了硬編碼,因此如何在下面的代碼中實現上述開關?
//import com.atlassian.jira.ComponentManager
//import com.atlassian.jira.issue.CustomFieldManager
//import com.atlassian.jira.issue.MutableIssue
//import com.atlassian.jira.issue.customfields.CustomFieldType
//import com.atlassian.jira.issue.fields.CustomField
import java.sql.Timestamp;
//MutableIssue myIssue = issue
Calendar cal = Calendar.getInstance();
// set due date to: current date + 30 days
Timestamp mydueDate = new Timestamp(cal.getTimeInMillis()+ 2592000000);
println mydueDate
//myIssue.setDueDate(mydueDate);
這是解決問題的實際方法,因此JIRA不再抱怨。
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.issue.CustomFieldManager
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.customfields.CustomFieldType
import com.atlassian.jira.issue.fields.CustomField
import java.sql.Timestamp;
def every, period
if (cfValues['Every']){
every = cfValues['Every'] as int
}
if (cfValues["Period"]){
period = cfValues["Period"]
}
Calendar cal = Calendar.getInstance();
if (every && period){
switch (period) {
case "day(s)":
cal.add(Calendar.DAY_OF_MONTH, every)
break
case "week(s)":
cal.add(Calendar.DAY_OF_MONTH, every*7)
break
case "month(s)":
cal.add(Calendar.MONTH, every)
break
case "year(s)":
cal.add(Calendar.YEAR, every)
break
case "day of the month":
cal.add(Calendar.MONTH, 1)
cal.set(Calendar.DAY_OF_MONTH, every)
break
}
}
MutableIssue myIssue = issue
Timestamp mydueDate = new Timestamp(cal.getTimeInMillis());
myIssue.setDueDate(mydueDate);
//copy the parent issue summary
issue.summary = sourceIssue.summary
//delete the links and attachements
checkLink = {link -> false};
checkAttachment = {attachment -> false}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.