所以,我正在尝试开发一个在我输入的时候打开JDialog的应用程序.它只需要精确到一秒钟.
public void run() {
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm");
timeset = "16:37";
while(true){
System.out.println("thread sleep");
try{Thread.currentThread().sleep(1000);}catch(InterruptedException ie){}
Calendar cal = Calendar.getInstance();
cal.getTime();
temptime = sdf.format(cal.getTime());
System.out.println("realtime = " + realtime);
System.out.println("timeset = " + timeset);
if(realtime == timeset){
System.out.println("if statement activated");
Alert.man();
break;
}
Run Code Online (Sandbox Code Playgroud)
所以,我的问题是当我运行程序时if语句在timeset和realtime相等时没有运行,我只是想不出来.这是怎么回事?
我需要从当前日期禁用所有过去的日期,并且仅使用<p:calendar>Primefaces中的当前日期中的三个即将到来的日期.这该怎么做?
我目前有以下代码,由于我怀疑static block在分配之前没有被调用,因此无法正常工作programCutoffDate2015.
private final static Calendar programCutoffDate2015Cal = Calendar.getInstance();
static{
programCutoffDate2015Cal.set(2015, 12,31);
}
private final static Date programCutoffDate2015 = programCutoffDate2015Cal.getTime();
Run Code Online (Sandbox Code Playgroud)
以前我使用的是已弃用的API:
private final static Date programCutoffDate2015 = new Date(2015, 12,31);
Run Code Online (Sandbox Code Playgroud)
如何使用JDK中未弃用的较新API来完成相同的结果?
我想遍历给定年份或当年的所有月份,并获得每个月的第一个和最后一个日期。例如。当前年份是 2017 年和 10 月。所以我想从 2017 年 10 月到 2017 年 12 月循环并获取每个月的第一个和最后一个日期,比如 10 月的第一个日期是 2017-10-01,最后一个日期是 2017-10-31。
如何在一个月内获得工作日(周一至周五)的数量LocalDate?我以前从未使用java.time过,所以我不知道它的所有工作原理.我一直在寻找这个网站,无法找到答案.我也不想使用任何外部库.
例如:截至本月,2018年4月,有21个工作日.下个月有23个工作日.
我必须使用java.util.Calendar #add(...)方法错误,因为它给了我意想不到的结果.假设一些初始条件:
我认为这两个结果之间会有7天的差异,但我得到7天+ 1年.
例如:
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Calendar;
public class CalendarFun {
public static void main(String[] args) {
Calendar cal = Calendar.getInstance();
cal.set(Calendar.MONTH, Calendar.JANUARY);
cal.set(Calendar.DAY_OF_MONTH, 30);
cal.set(Calendar.YEAR, 2012);
Date date = cal.getTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("MM/dd/YYYY");
System.out.println(dateFormat .format(date));
Calendar newCal = (Calendar) cal.clone();
newCal.add(Calendar.WEEK_OF_YEAR, 47);
System.out.println("add 47 weeks: " + dateFormat.format(newCal.getTime()));
newCal = (Calendar) cal.clone();
newCal.add(Calendar.WEEK_OF_YEAR, 48);
System.out.println("add 48 weeks: " + dateFormat.format(newCal.getTime()));
}
}
Run Code Online (Sandbox Code Playgroud)
打印出:
01/30/2012
add 47 weeks: 12/24/2012
add 48 …Run Code Online (Sandbox Code Playgroud) 我创建了几个小方法作为Util类,如下面的代码:
public class Util
{
public static final String DATETIME_PATTERN="YYYY/MM/DD - HH:mm:ss";
public static String getDateTime()
{
SimpleDateFormat sdf=new SimpleDateFormat(DATETIME_PATTERN);
return sdf.format(getToday());
}
public static Date getToday()
{
//Calendar today=Calendar.getInstance(); //didn't help
Calendar today=Calendar.getInstance(Locale.TAIWAN); //didn't fix
//Calendar today=Calendar.getInstance(TimeZone.getTimeZone("GMT+08:00")); //didn't fix as well
return today.getTime();
}
}
Run Code Online (Sandbox Code Playgroud)
而且,做了一个非常简单的运行,像这样:
//run in main class
System.out.println("Generating sitemap.xml, please wait..."+Util.getDateTime());
Run Code Online (Sandbox Code Playgroud)
结果是一个非常奇怪的日期 - > 2017/07/117
//Console result:
Generating sitemap.xml, please wait...2017/07/187 - 15:27:21
Run Code Online (Sandbox Code Playgroud)
搜索了类似的问题,并尝试了TimeZone,Locale,但没有帮助.有什么建议 ?
顺便说一句,这是我的环境:
所以我正在制作一个 Android 应用程序,我需要计算当前日期和当月最后一个日期之间的天数。
假设今天是 1/11/2017,当月的最后一个日期是 30/11/2017。所以天数是 30。因为 30 天后下个月就要开始了。
我希望所有月份都持续30天.我可以用Java中的java.util.Date或java.util.Calendar来实现这个目的吗?谢谢
这基本上是一种算法:
对不起,如果有人不理解,我会尝试重新解释,如果没有人得到它.