我目前正在创建一个将数据保存到磁盘的应用程序。我希望文件的文件名是当前日期。我尝试使用SimpleDateFormat为此目的,但我不知道如何将它转换为字符串。它的toString()方法没有被Object所覆盖,因此我没有得到有效的结果。使用SimpleDateFormat作为字符串的文件名
这是代码:
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
...
ImageIO.write(capture, "png", new File(sdf.toString() + ".png"));
如何表示的日期/时间格式的字符串?
完整代码:
import java.awt.*;
import java.awt.image.BufferedImage;
import java.io.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.imageio.ImageIO;
public class Screenshot {
private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
public static void fullScreenshot() {
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
try {
BufferedImage capture = new Robot().createScreenCapture(screenRect);
ImageIO.write(capture, "png", new File(sdf.format(new Date()) + ".png"));
} catch (IOException e) {
System.err.println("Thrown exception at IO file save");
} catch (AWTException e) {
System.err.println("Insufficient permissions or explosion while screenshoting");
}
}
}
这是一个确实的字符串,但它是转换冒号(:)从格式中删去(/)。我如何防止这种情况发生? – Aborted
@Aborted你能提供你的代码吗?这可能不是由于'DateFormat'。 – sp00m
当然。我会在问题中正确回答。 – Aborted