用线程可以啊
import javautil;
public class test implements Runnable{
Thread th0 ;
//public void run(){}
public test(Thread th)
{
th0 = th;
th0= new Thread(this);
th0start();
}
public void run()
{
try{
while(true)
{
if(ThreadcurrentThread()==th0){
Calendar cal = CalendargetInstance();
int wd = calget(CalendarDAY_OF_WEEK);
String x = "";
switch(wd){
case 1:x="星期日";break;
case 2:x="星期一";break;
case 3:x="星期二";break;
case 4:x="星期三";break;
case 5:x="星期四";break;
case 6:x="星期五";break;
case 7:x="星期六";break;
}
int y = calget(CalendarYEAR);
int mon = calget(CalendarMONTH)+1;
int d = calget(CalendarDATE);
int h = calget(CalendarHOUR);
int min = calget(CalendarMINUTE);
int s = calget(CalendarSECOND);
int ap = calget(CalendarAM_PM);
if(ap==1)
h = h+12;
StringBuffer sb = new StringBuffer("日期:"+y+"-"+((mon<=9)"0"+mon:mon)+"-"+((d<=9)"0"+d:d)+" 时间:"+h+":"+((min<=9)"0"+min:min)+":"+((s<=9)"0"+s:s)+" "+x);
Systemoutprintln(sb);
Threadsleep(1000);
}
}
}catch(Exception ee){
eegetStackTrace();
}
}
public static void main(String[] args) {
Thread th = new Thread();
test t = new test(th);
trun();
}
}
public static void main(String[] args) {
Calendar calendar = CalendargetInstance(LocalegetDefault());
Systemoutprintln(calendarget(CalendarYEAR));
Systemoutprintln(calendarget(CalendarMONTH)+1);
Systemoutprintln(calendarget(CalendarDATE));
}
3行代码分别用于获取当前时间的年、月、日,获取月份的时候需要+1,因为月份取的索引值,从0-11
有两种方法:
方法一:用javautilDate类来实现,并结合javatextDateFormat类来实现时间的格式化,看下面代码:
import javautil;
import javatext;
//以下默认时间日期显示方式都是汉语语言方式
//一般语言就默认汉语就可以了,时间日期的格式默认为MEDIUM风格,比如:2008-6-16 20:54:53
//以下显示的日期时间都是再Date类的基础上的来的,还可以利用Calendar类来实现见类TestDate2java
public class TestDate {
public static void main(String[] args) {
Date now = new Date();
Calendar cal = CalendargetInstance();
DateFormat d1 = DateFormatgetDateInstance(); //默认语言(汉语)下的默认风格(MEDIUM风格,比如:2008-6-16 20:54:53)
String str1 = d1format(now);
DateFormat d2 = DateFormatgetDateTimeInstance();
String str2 = d2format(now);
DateFormat d3 = DateFormatgetTimeInstance();
String str3 = d3format(now);
DateFormat d4 = DateFormatgetInstance(); //使用SHORT风格显示日期和时间
String str4 = d4format(now);
DateFormat d5 = DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL); //显示日期,周,时间(精确到秒)
String str5 = d5format(now);
DateFormat d6 = DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG); //显示日期。时间(精确到秒)
String str6 = d6format(now);
DateFormat d7 = DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT); //显示日期,时间(精确到分)
String str7 = d7format(now);
DateFormat d8 = DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM); //显示日期,时间(精确到分)
String str8 = d8format(now);//与SHORT风格相比,这种方式最好用
Systemoutprintln("用Date方式显示时间: " + now);//此方法显示的结果和CalendargetInstance()getTime()一样
Systemoutprintln("用DateFormatgetDateInstance()格式化时间后为:" + str1);
Systemoutprintln("用DateFormatgetDateTimeInstance()格式化时间后为:" + str2);
Systemoutprintln("用DateFormatgetTimeInstance()格式化时间后为:" + str3);
Systemoutprintln("用DateFormatgetInstance()格式化时间后为:" + str4);
Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL)格式化时间后为:" + str5);
Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG)格式化时间后为:" + str6);
Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT)格式化时间后为:" + str7);
Systemoutprintln("用DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM)格式化时间后为:" + str8);
}
}
运行结果:
用Date方式显示时间: Mon Jun 16 20:54:53 CST 2008
用DateFormatgetDateInstance()格式化时间后为:2008-6-16
用DateFormatgetDateTimeInstance()格式化时间后为:2008-6-16 20:54:53
用DateFormatgetTimeInstance()格式化时间后为:20:54:53
用DateFormatgetInstance()格式化时间后为:08-6-16 下午8:54
用DateFormatgetDateTimeInstance(DateFormatFULL,DateFormatFULL)格式化时间后为
:2008年6月16日 星期一 下午08时54分53秒 CST
用DateFormatgetDateTimeInstance(DateFormatLONG,DateFormatLONG)格式化时间后为
:2008年6月16日 下午08时54分53秒
用DateFormatgetDateTimeInstance(DateFormatSHORT,DateFormatSHORT)格式化时间后
为:08-6-16 下午8:54
用DateFormatgetDateTimeInstance(DateFormatMEDIUM,DateFormatMEDIUM)格式化时间
后为:2008-6-16 20:54:53
方法二:用javautilCalendar类来实现,看下面:
import javautil;
import javatext;
//以下是利用Calendar类来实现日期时间的,和Date类相比较比较简单
public class TestDate2 {
public static void main(String[] args) {
Calendar ca = CalendargetInstance();
int year = caget(CalendarYEAR);//获取年份
int month=caget(CalendarMONTH);//获取月份
int day=caget(CalendarDATE);//获取日
int minute=caget(CalendarMINUTE);//分
int hour=caget(CalendarHOUR);//小时
int second=caget(CalendarSECOND);//秒
int WeekOfYear = caget(CalendarDAY_OF_WEEK);
Systemoutprintln("用CalendargetInstance()getTime()方式显示时间: " + cagetTime());
Systemoutprintln("用Calendar获得日期是:" + year +"年"+ month +"月"+ day + "日");
Systemoutprintln("用Calendar获得时间是:" + hour +"时"+ minute +"分"+ second +"秒");
Systemoutprintln(WeekOfYear);//显示今天是一周的第几天(我做的这个例子正好是周二,故结果显示2,如果你再周6运行,那么显示6)
}
}
运行结果是:
用CalendargetInstance()getTime()方式显示时间: Mon Jun 16 21:54:21 CST 2008
用Calendar获得日期是:2008年5月16日
用Calendar获得时间是:9时54分21秒
2
总结:中的来说,方法二是最方便的,方法一显得分笨拙,不过看个人喜欢了。
推迟一周代码:
Calendar curr = CalendargetInstance();
currset(CalendarDAY_OF_MONTH,currget(CalendarDAY_OF_MONTH)+7);
Date date=currgetTime();
推迟一月代码:
Calendar curr = CalendargetInstance();
currset(CalendarMONTH,currget(CalendarMONTH)+1);
Date date=currgetTime();
推迟一年代码:
Calendar curr = CalendargetInstance()
currset(CalendarYEAR,currget(CalendarYEAR)+1);
Date date=currgetTime();
扩展资料:
在windows下编译java文件、执行:
1、先创建一个txt,更改为testjava。
2、编写代码,为输出为holloword。
3、找到cmd,并进行打开cmd。
4、编译java文件,输入命令为javac testjava。
5、如果没有报错,查看当前目录下是否有class文件产生。
6、执行class文件,在命令输入java test,输出为holloword。
java获取一个时间的年月日代码及相关解释说明参考下面代码
package zhidao;
import javautilCalendar;
public class Test {
public static void main(String[] args) {
Calendar cal=CalendargetInstance();//使用日历类
int year=calget(CalendarYEAR);//获取年份
int month=calget(CalendarMONTH)+1;//获取月份,因为从0开始的,所以要加1
int day=calget(CalendarDAY_OF_MONTH);//获取天
Systemoutprintln("结果:"+year+"-"+month+"-"+day);
}
}
一般情况可以用直接用Date类,例如:
Date date = new Date(SystemcurrentTimeMillis()); Systemoutprintln(date);先用SystemcurrentTimeMillis()是得到系统当前时间。然后输出就可以了。
但是如果要更加准确的话,最好用Calendar类,因为可能用你的程序的系统不是中国的,用Date date = new Date(SystemcurrentTimeMillis())得到的就是不是北京时间了。所以可以用Calendar calendar = CalendargetInstance(LocaleCHINA);
还可以用SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");来格式化时间。下面是一个简单的实例:
public class GetTime{
public static void main(String[] args)
{
Calendar calendar = CalendargetInstance(LocaleCHINA);
Date date = calendargetTime();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateString = dateFormatformat(date);
Systemoutprintln(dateString);
}
}
导入包的时候Date类是javautil下的Date类,javautilDate;
Calendar ca = CalendargetInstance(); int year = caget(CalendarYEAR);//获取年份 int month=caget(CalendarMONTH);//获取月份 int day=caget(CalendarDATE);//获取日 int minute=caget(CalendarMINUTE);//分 int hour=caget(CalendarHOUR);//小时 int second=caget(CalendarSECOND);//秒 int WeekOfYear = caget(CalendarDAY_OF_WEEK);
1、使用Calendar类。
Calendar cal = CalendargetInstance();
calset(CalendarYEAR, 2016); // 2016年
calset(CalendarWEEK_OF_YEAR, 10); // 设置为2016年的第10周
calset(CalendarDAY_OF_WEEK, 2); // 1表示周日,2表示周一,7表示周六
Date date = calgetTime();
以上就能得到2016年第10周的周一的Date时间。
注:上面代码是手工敲的,没有放到eclipse中运行,有写错的地方请谅解
以上就是关于Java用Calendar如何每秒取一次系统时间全部的内容,包括:Java用Calendar如何每秒取一次系统时间、java获取当前时间几天/月/年前的时间方法、如何获取明天的日期等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)