我正在尝试设置电子邮件类型的发送日期值。
所以我希望人们在17:30之后收到这些邮件,这很酷......
我有
DateFormat dateFormat = new SimpleDateFormat("yyyy/MM/dd");
Calendar cal = Calendar.getInstance();
If( "342856".equals(emailTemplateId)) {
tmp_disp.setScheduledDate(dateFormat.format(cal.getTime()) + " " + "17:30:00");
LOGGER.debug(">>> ScheduledDate: " + tmp_disp.getScheduledDate());
}
else {
tmp_disp.setScheduledDate(null);
LOGGER.debug(">>> ScheduledDate: " + tmp_disp.getScheduledDate());
}
现在,如果我在17:30之后发送电子邮件,我就不能在17:30发送电子邮件...所以我需要说..
If( "342856".equals(emailTemplateId)) AND **thecurrenttimetoday <= 17:00:00** {
tmp_disp.setScheduledDate(dateFormat.format(cal.getTime()) + " " + "17:30:00");
LOGGER.debug(">>> ScheduledDate: " + tmp_disp.getScheduledDate());
}
else {
tmp_disp.setScheduledDate(null);
LOGGER.debug(">>> ScheduledDate: " + tmp_disp.getScheduledDate());
}
我真的很喜欢java,而且根本不知道如何做到这一点......任何想法?
真的很感激和帮助,整个早上一直在融化我的小脑!
答案 0 :(得分:1)
在您遇到问题之前,您的代码中存在许多问题。
If (emailTemplateId = "342856") // very bad way of checking String equility
使用
If( "342856".equals(emailTemplateId))
答案 1 :(得分:1)
我相信你正在努力做到这一点。如果我错过了什么,请详细说明。
Calendar cal = Calendar.getInstance();
String emailTemplateId = ""; //some value
Calendar boundaryTime = Calendar.getInstance();
boundaryTime.set(Calendar.HOUR_OF_DAY,17);
boundaryTime.set(Calendar.MINUTE,30);
boundaryTime.set(Calendar.SECOND,0);
boundaryTime.set(Calendar.MILLISECOND,0);
if( "342856".equals(emailTemplateId) && cal.getTime().before(boundaryTime.getTime())) {
tmp_disp.setScheduledDate(boundaryTime.getTime());
LOGGER.debug(">>> ScheduledDate: " + tmp_disp.getScheduledDate());
}
else {
tmp_disp.setScheduledDate(null);
LOGGER.debug(">>> ScheduledDate: " + tmp_disp.getScheduledDate());