将日期和时间添加到文件名

Pau*_*aul 3 java printing time date writer

您好我正在尝试将日期和时间添加到JAVA中的文件名.我可以在文件中打印日期和时间,这也是我想要完成的,但是当我将toString放在FileWriter中时,我得到一个空指针.

package com.mkyong;
import java.util.*;
import java.io.*;
import java.*;
import java.util.Date;
import java.text.DateFormat;
import java.text.SimpleDateFormat;

    public class Simplex {

        private static PrintWriter outFile;

        //Main Method
        public static void main(String[] args) throws IOException {



            // Instantiate a Date object
             Date date = new Date();

             // display time and date using toString()
             outFile.println(date.toString());
             outFile.println();
            //creates the new file to be saved


            outFile = new PrintWriter(new FileWriter("simplex" + (date.toString()) + ".txt"));
Run Code Online (Sandbox Code Playgroud)

Kum*_*hek 7

如果使用java 8

DateTimeFormatter timeStampPattern = DateTimeFormatter.ofPattern("yyyyMMddHHmmss");
        System.out.println(timeStampPattern.format(java.time.LocalDateTime.now()));
Run Code Online (Sandbox Code Playgroud)

  • 我建议总是将`ZoneId`对象传递给`now()`方法.如果省略,则应用JVM的当前默认时区.默认值可能会有所不同 最好明确指定预期/期望的区域. (2认同)

Sur*_*ran 5

该行outFile = new PrintWriter(..)应在首次使用outFile之前发生.

基本上你在初始化之前使用outFile.


Vik*_*bin 5

我建议您在文件名中使用YYYY-MM-dd_hh-mm-ss格式化模式,这样您可以更方便地对文件进行排序。看看SimpleDateFormat课堂吧。

    ...
    Format formatter = new SimpleDateFormat("YYYY-MM-dd_hh-mm-ss");
    outFile = new PrintWriter(new FileWriter("simplex_" + formatter.format(date) + ".txt"))
    ...
Run Code Online (Sandbox Code Playgroud)