Java获取并显示完整当前时间

需积分: 50 4 下载量 88 浏览量 更新于2024-09-14 收藏 2KB TXT 举报
"Java程序用于显示当前日期和时间,包括年、月、日、星期、小时、分钟和秒,并区分上午和下午。" 在Java编程中,获取和显示当前时间是一项基本任务。在这个示例中,可以看到一个JavaScript函数`reloop()`被用来实时更新页面上显示的时间。以下是对代码关键部分的详细解释: 1. 创建Date对象: - `var time = new Date();` 这行代码创建了一个`Date`对象,它表示当前的日期和时间。 2. 获取时间组件: - `var year = time.getYear() + 1900;`:由于`getYear()`返回的是自1900年以来的年份,所以需要加上1900来得到实际的年份。 - `var month = time.getMonth() + 1;`:`getMonth()`返回的是0-11之间的月份,因此加1得到1-12的实际月份。 - `var date = time.getDate();`:获取当前日期。 - `var day = time.getDay();`:获取一周中的第几天(0-6,其中0表示周日)。 - `var hour = time.getHours();`:获取小时(0-23)。 - `var minutes = time.getMinutes();`:获取分钟。 - `var seconds = time.getSeconds();`:获取秒数。 3. 处理星期几的显示: - 通过`switch`语句来根据`day`的值确定星期几的汉字表示,但在此示例中,所有情况都设置为空字符串,这可能是一个错误,应该根据实际情况进行填充。 4. 处理12小时制的时间: - 检查`hour`是否大于12来判断是上午还是下午。如果是下午,`hour`减去12,并在时间后面添加"PM"标记。 5. 格式化输出: - 使用`document.getElementById("tt").value`更新HTML元素的值,显示格式化的日期和时间。 - 注意检查`minutes`和`seconds`是否小于10,以便在前面添加前导零,使输出更美观。 这个代码段主要用于网页上的实时时间显示,但它用的是JavaScript而不是Java。在Java中,获取当前时间的类是`java.util.Date`或`java.time`包下的`LocalDateTime`。例如,使用Java 8的`LocalDateTime`,你可以这样获取并格式化当前时间: ```java import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; LocalDateTime now = LocalDateTime.now(); DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd E HH:mm:ss a"); String formattedNow = now.format(formatter); System.out.println(formattedNow); ``` 这段Java代码将打印出类似"2023-03-07 星期二 14:30:45 PM"的格式化日期和时间。请注意,Java中处理日期和时间的API比JavaScript更为强大和灵活。
2011-04-20 上传
表盘式时钟,并显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*