gpt4 book ai didi

java - Java中如何获取更新时间?

转载 作者:行者123 更新时间:2023-11-30 03:20:35 24 4
gpt4 key购买 nike

我正在尝试编写一个简单的java程序,它使我能够获取每秒的更新时间。然后,所有时间值都存储在文本文件中。然而,我只能得到第一次,并且一次又一次地得到相同的结果。

代码:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.io.Writer;
import java.text.SimpleDateFormat;
import java.util.Calendar;

public class testTime extends javax.swing.JFrame {

public Writer writer=null;
public Calendar cal = Calendar.getInstance();
public File file;
protected boolean isRunning=false;

public testTime() {
initComponents();
initTimer();
}

public void initTimer()
{
this.isRunning=true;
tryToGetUpdateTime();
}

public void tryToGetUpdateTime()
{
java.awt.EventQueue.invokeLater(new Runnable() {

SimpleDateFormat sdfHour = new SimpleDateFormat("HH:mm:ss");
SimpleDateFormat sdfMonth = new SimpleDateFormat("dd/MM/yyyy");

public void run() {
while (isRunning) {
try{
file= new File("c:/Users/user/Desktop/updateTime.txt");

if(!file.exists())
{
file.createNewFile();
}

FileWriter fileWriter = new FileWriter(file,true);
BufferedWriter bufferWritter = new BufferedWriter(fileWriter); bufferWritter.append("**************************************************" + '\n');
bufferWritter.append(sdfMonth.format(cal.getTime()) + " " + sdfHour.format(cal.getTime()) + '\n');
bufferWritter.append("**************************************************" + '\n');
bufferWritter.close();
}catch(IOException ex){
System.err.println("Error in Writer : " + ex);
}
}
}
});
}

public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new testTime().setVisible(true);
}
});
}
}

输出:

**************************************************
15/07/2015 23:28:52
**************************************************
**************************************************
15/07/2015 23:28:52
**************************************************
**************************************************
15/07/2015 23:28:52
**************************************************

最佳答案

创建Calendar 时,除非您明确更改它的日期,否则它的日期不会更改,因此它将始终返回相同的值。

其次,在我看来,您实例化整个重量级 Calendar 只是为了从中获取 Date 。没有必要,直接实例化Date:

Date date = new Date();
bufferWritter.append(sdfMonth.format(date) + " " + sdfHour.format(date) + '\n');

关于java - Java中如何获取更新时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31434956/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com