[英]Using SimpleDateFormat as a String for filenames
我目前正在创建一个将数据保存到磁盘的应用程序。 我希望文件的文件名是当前日期。 我为此目的尝试使用SimpleDateFormat ,但我不知道如何将其转换为字符串。 它的toString()方法未从Object覆盖,因此我没有得到有效的结果。
这是代码:
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");
}
}
}
你应该做
sdf.format( new Date() );
这将起作用!
您正在寻找sdf.format(new Date())
。 DateFormat
不会用任何日期初始化,您必须将日期传递给它的format
方法(或将一个字符串传递给它的parse
)。
仅通过格式上的日期
sdf.format(new Date().getTime())
你可以做 :
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
sdf.format(new Date().getTime());
要么
String fName = String.valueOf(new Timestamp(new Date().getTime())); // it ll give you current timestamp
ImageIO.write(capture, "png", new File(fName + ".png"));
要么
ImageIO.write(capture, "png", new File("Name" + fName + ".png"));
在这两种情况下,都是java.sql
包中的Date()
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.