java显示时间_Java 日期时间获取和显示

importjava.text.SimpleDateFormat;importjava.util.Calendar;importjava.util.Date;importjava.util.Locale;importjava.util.TimeZone;public classMain {public static voidmain(String[] args) {

Calendar calendar=Calendar.getInstance(TimeZone.getDefault());//FAQ ://1.不同地区国家时间格式显示和同步问题? UTC,格林威治?夏威夷?国际化 ~ locale//2.本地client和服务器时间同步问题,比如定时下发执行任务,本地预定时早于服务器当前时间,则无法执行

System.out.println("\nTimezone: " +TimeZone.getDefault());long time =calendar.getTimeInMillis();

Date date1=calendar.getTime();

Date date2= new Date(); //get current date//method1: direct format fun call//a ~ AM/PM, 上午/下午

SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd HH:mm"); //HH ~ 24小时制

System.out.printf("\nTime1 in 24h : " +sdf1.format(calendar.getTime()));

SimpleDateFormat sdf11= new SimpleDateFormat("yyyy-MM-dd hh:mm"); //hh ~ 12小时制

System.out.printf("\nTime11 in 12h : " +sdf11.format(calendar.getTime()));

SimpleDateFormat sdf2= new SimpleDateFormat("yyyy-MM-dd a HH:mm", Locale.ENGLISH);

System.out.printf("\nTime2: " +sdf2.format(calendar.getTime()));

SimpleDateFormat sdf3= new SimpleDateFormat("yyyy年MM月dd日HH:mm");

System.out.printf("\nTime3: " +sdf3.format(calendar.getTime()));

SimpleDateFormat sdf4= new SimpleDateFormat("yyyy年MM月dd日 a HH:mm");

System.out.printf("\nTime4: " +sdf4.format(calendar.getTime()));//method2: use self define format func

int year =calendar.get(Calendar.YEAR);int month =calendar.get(Calendar.MONTH);int day =calendar.get(Calendar.DAY_OF_MONTH);int hour =calendar.get(Calendar.HOUR_OF_DAY);int minute =calendar.get(Calendar.MINUTE);int second =calendar.get(Calendar.SECOND);//欧美国家一周的第一天是星期天,这在java api代码中是写死的,因此这里要自己手动做下判断//Calendar中的星期一、二、三、四、五、六、日、DAY_OF_WEEK等都是以一个常量的形式存在的,//我们设置setFirstDayOfWeek()并不能改变这些常量的值

int dayOfWeek = calendar.get(Calendar.DAY_OF_WEEK); //获取当天是星期几

boolean isFirstSunday = (calendar.getFirstDayOfWeek() ==Calendar.SUNDAY);if(isFirstSunday) {

dayOfWeek-= 1;if (dayOfWeek == 0) {

dayOfWeek= 7;

}

}int dayOfWeekInMonth = calendar.get(Calendar.DAY_OF_WEEK_IN_MONTH); //某月中第几周. 按这个月1号算,1号起就是第1周,8号起就是第2周

int weekOfMonth = calendar.get(Calendar.WEEK_OF_MONTH); //该月的第几周

int dayOfYear = calendar.get(Calendar.DAY_OF_YEAR); //一年的第几天,从1号算起

System.out.println("\n" +getFormattedTime(year, month, day, hour, minute));

System.out.println("\ndayOfWeek: " + dayOfWeek + "\ndayOfWeekInMonth: " +dayOfWeekInMonth+ "\ndayOfYear: " +dayOfYear);

}/*** 格式化日期字符串,形如 xx年xx月xx日xx:xx:xx

*@paramyear

*@parammonth

*@paramday

*@paramhour

*@paramminute

*@returnString*/

public static String getFormattedTime(int year, int month, int day, int hour, intminute) {

String yearStr= "";

String monthStr= "";

String dayStr= "";

String hourStr= "";

String minuteStr= "";//year

if (year < 10) {

yearStr= "0" +year;

}else{

yearStr=String.valueOf(year);

}//month

if (month < 10) {

monthStr= "0" +month;

}else{

monthStr=Integer.toString(month);

}//day

if (day < 10) {

dayStr= "0" +day;

}else{

dayStr=Integer.toString(day);

}//hour

if (hour < 10) {

hourStr= "0" +hour;

}else{

hourStr=Integer.toString(hour);

}//minute

if (minute < 10) {

minuteStr= "0" +minute;

}else{

minuteStr=Integer.toString(minute);

}return yearStr + "年" + monthStr + "月" + dayStr + "日" + hourStr + ":" +minuteStr;

}

}

表盘式时钟,并显import java.awt.*; import java.awt.event.*; import javax.swing.*; import sun.util.calendar.Gregorian; import java.util.Calendar; import java.util.GregorianCalendar; public class Clock extends JFrame implements ActionListener{ int x, y, x0, y0, r, h, olds_x, olds_y, oldm_x, oldm_y, oldh_x, oldh_y, ss,mm,hh,old_m,old_h,ang; final double RAD = Math.PI/180; public Clock(){ super("Java时钟"); setDefaultCloseOperation(3); Image image = getToolkit().getImage("clock.gif"); setIconImage(image); setSize(200,200); setBackground(Color.black); setLocation(300,150); setResizable(false); show(); int delay = 1000; //创建一个监听事件 ActionListener drawClock = new ActionListener(){ public void actionPerformed(ActionEvent evt){ repaint(); } }; //创建一个时间计数器,每一秒触发一次 new Timer(delay,drawClock).start(); } //实现ActionListener接口必须实现的方法 public void actionPerformed(ActionEvent evt){} //绘制图形 public void paint(Graphics g){ Graphics2D g2D = (Graphics2D)g; Insets insets = getInsets(); int L = insets.left/2, T = insets.top/2; h = getSize().height; g.setColor(Color.white); //画圆 g2D.setStroke(new BasicStroke(4.0f)); g.drawOval(L+40, T+40, h-80, h-80); r = h/2 - 40; x0 = 40 + r - 5 + L; y0 = 40 + r - 5 - T; ang = 60; //绘制时钟上的12个字 for(int i = 1;i <= 12;i ++){ x = (int)((r+10)*Math.cos(RAD*ang)+x0); y = (int)((r+10)*Math.sin(RAD*ang)+y0); g.drawString(""+i, x, h-y); ang -=30; } //获得现在的时间 Calendar now = new GregorianCalendar(); int nowh = now.get(Calendar.HOUR_OF_DAY); int nowm = now.get(Calendar.MINUTE); int nows = now.get(Calendar.SECOND); String st; if(nowh < 10)st = "0"+nowh; else st = ""+nowh; if(nowm<10)st += ":0"+nowm; else st += ":"+nowm; if(nows<10)st += ":0"+nows; else st += ":"+nows; //在窗体上显示时间 g.setColor(Color.pink); g.fillRect(L, T, 50, 28); g.setColor(Color.blue); g.drawString(st,L+2,T+26); //计算时间与度数的关系 ss = 90 - nows*6; mm = 90 - nowm*
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值