Подтвердить что ты не робот

Создание имени файла с использованием даты и времени

Надеюсь, вы могли бы мне помочь, я пытаюсь позвонить в дату из другого класса и выглядеть "2011-03-09 06-57-40", я хочу использовать это, чтобы создать файл ниже, но каждый раз Я делаю, когда запускает вывод, он создает новый файл, поскольку он повторно запускает вызов dat(). Я знаю, что пошло не так. Я просто не уверен, как это исправить, я хочу, чтобы он написал в один файл. Я надеюсь в этом есть смысл?:/

Спасибо за любую помощь заранее:)

    date d = new date();
    String  cdate = d.date();


    String f = h;

    try{
        PrintWriter out = new PrintWriter(new BufferedWriter(new FileWriter(cdate + ".tsv", true)));
        out.print(f);
        out.print("\t");
        out.close();
    }catch (IOException e){
    }
4b9b3361

Ответ 1

Чтобы создать файл с текущей датой/временем:

Date date = new Date() ;
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss") ;
File file = new File(dateFormat.format(date) + ".tsv") ;
BufferedWriter out = new BufferedWriter(new FileWriter(file));
out.write("Writing to file");
out.close();

Ответ 2

Это, наверное, намного проще. Только одна строка кода, чтобы назначить имя файла как дату и время.

String out = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss'.tsv'").format(new Date());

Ответ 3

Я постараюсь все равно ответить. Чтобы получить дату или временную строку наиболее контролируемым образом, используйте следующий код

Calendar cal = Calendar.getInstance();
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
String dateStr = dateFormat.format(cal.getTime());

Посмотрите http://download.oracle.com/javase/6/docs/api/java/text/SimpleDateFormat.html. Это может помочь с пониманием. Вы также можете добавить час/минуту или что вам нужно для форматированной строки.

Другой вариант может заключаться в том, чтобы всегда устанавливать "нижние" поля, такие как миллисекунды, секунды, минуты в календаре до нуля.

cal.set(Calendar.MINUTE,0);

Если вы извлекаете дату из другого класса и не можете напрямую создавать календарь, вы также можете поместить дату в календарь (обратите внимание: для просто форматирования вам не нужен календарь)

cal.setTime(date);

Возможно, это помогает получить больше контроля над созданным именем файла/файлом.

Ответ 4

Это будет немного более эффективно - только один объект SimpleDateFormat и Date для каждого файла, а также отсутствие конкатенации строк.

private  final static String getDateTime()  
{  
    DateFormat df = new SimpleDateFormat("yyyy-MM-dd_hh:mm:ss");  
    df.setTimeZone(TimeZone.getTimeZone("PST"));  
    return df.format(new Date());  
}  

Ответ 5

Попробуйте с этим

public class TimeBasedFile {
    public static void main(String[] args) {


    Date date = new Date() ;
    SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH-mm-ss") ;
    File file = new File("D:\\datebasedFile\\"+dateFormat.format(date) + ".tsv") ;

    try(BufferedWriter out = new BufferedWriter(new FileWriter(file))) {
        out.write("Writing to file");
        // code for what data you want to store
        System.out.println("the file is created successfully");
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

}
}

он создает новый файл каждый раз при выполнении.

Ответ 6

public class BELogs {

    private final static Logger logger = Logger.getLogger(BSELogs.class
            .getName()); 

             boolean makeDir = false;
             Date date = new Date();
             SimpleDateFormat dateFormat = new SimpleDateFormat("dd-MM-yyyy") ;
             String curDate =dateFormat.format(date);
             FileHandler fh;     

               public BSELogs()  {

         try {  

             File file = new File("/home//Desktop/Logs "+curDate);
             makeDir = file.mkdir();
             fh = new FileHandler(file+"/MyLogFile.log "+curDate,true);  
             logger.addHandler(fh);
             // Set the logger level to produce logs at this level and above.
             logger.setLevel(Level.FINE);
             SimpleFormatter formatter = new SimpleFormatter();  
             fh.setFormatter(formatter);  

          } catch (SecurityException ex) {  **strong text**
             ex.printStackTrace();  
          } catch (IOException e) {  
               e.printStackTrace();  
           }  

    logger.info("Data Log Genrated............"); 

      }
}