首页 文章

使用SimpleDateFormat作为文件名的String

提问于
浏览
0

我目前正在创建一个将数据保存到磁盘中的应用程序 . 我希望文件的文件名是当前日期 . 我尝试使用SimpleDateFormat用于此目的,但是我没有被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");
        }
    }
}

4 回答

  • 1

    你在找 sdf.format(new Date()) . DateFormat 未初始化为任何日期,您必须将日期传递给其 format 方法(或将字符串传递给其 parse 一个) .

  • 1

    你应该做

    sdf.format( new Date() );
    

    这会奏效!

  • 0

    只在格式方法上传递日期

    sdf.format(new Date().getTime())
    
  • 0

    你可以做 :

    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"));
    

    在两种情况下 Date() 来自 java.sql 包 .

相关问题