web-dev-qa-db-ja.com

日付と時刻を使用してファイル名を作成する

あなたが私を助けてくれることを願っています、私は別のクラスから日付を呼び出して「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){
    }
28
Tom

現在の日付/時刻という名前のファイルを作成するには:

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();
36
Rune Aamodt

これはおそらくはるかに簡単です。ファイルの名前を日付と時刻として割り当てるコードの1行のみ。

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

私も同じように答えてみます。可能な限り最も制御された方法で日付または時刻の文字列を取得するには、次のコードを使用します

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

たぶん、これは作成されたファイル名/ファイルのより多くの制御を得るのに役立ちます。

10
Yashima

それはもう少し効率的です-各ファイルに1つのSimpleDateFormatとDateオブジェクトだけがあり、String連結もありません。

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());  
}  
2
Freeman
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............"); 

      }
}             
1
user3860274