2011-03-09 14 views
26

मुझे उम्मीद है कि आप मेरी मदद कर सकते हैं, मैं किसी अन्य कक्षा से तारीख में कॉल करने की कोशिश कर रहा हूं और "2011-03-09 06-57-40" जैसा दिखता हूं, मैं इसका उपयोग करना चाहता हूं नीचे दी गई फ़ाइल बनाने के लिए, लेकिन जब भी आउटपुट चलता है तो मैं एक नई फाइल बनाता हूं क्योंकि यह डेटा() को कॉल करता है। मुझे पता है कि क्या गलत हो रहा है, मुझे यकीन नहीं है कि इसे कैसे ठीक किया जाए, मैं एक ही फाइल को विवेकपूर्ण रूप से लिखना चाहता हूं। मैं उम्मीद करता हूं कि इस बात में कोई तुक होगी? :/दिनांक और समय का उपयोग कर फ़ाइल नाम बनाएं

अग्रिम में किसी भी मदद के लिए धन्यवाद :)

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){ 
    } 
+0

क्या आप स्पष्ट कर सकते हैं कि आप फ़ाइल के साथ क्या करना चाहते हैं? मेरे पास दो विचार हैं: आपके द्वारा उपयोग की जाने वाली तिथि/फ़ाइल नाम संग्रहित करें। या आप केवल उस तारीख का उपयोग कर सकते हैं और वह समय भी नहीं जो संभवतः लॉगफाइल या कुछ समान के लिए पर्याप्त होगा। बीटीडब्ल्यू यह जावा है? शायद टैगिंग के रूप में प्रोग्रामिंग lanuage भी जोड़ें। – Yashima

+0

हाय माफ करना, मैं बहुत स्पष्ट नहीं था, यह जावा का उपयोग कर रहा है और मैं आज की तारीख और समय नाम की एक फाइल बनाना चाहता हूं, इसलिए यह हमेशा अनूठा होता है, फिर मैं इसमें डेटा लिखना चाहता हूं। क्या उससे मदद हुई? बहुत धन्यवाद। – Tom

+0

@ जेम्स नंबर, ऐसा नहीं है .. क्या आप इस सवाल पर अधिक विस्तृत जानकारी दे सकते हैं? –

उत्तर

9

मैं कोशिश करते हैं और सभी एक ही जवाब देंगे। निम्नलिखित कोड

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

शायद यह निर्मित फ़ाइल नाम/फ़ाइल के अधिक नियंत्रण प्राप्त करने में मदद करता है।

33

वर्तमान दिनांक/समय नाम की एक फ़ाइल बनाने के लिए:

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(); 
+0

आपको क्या विचार करना चाहिए कि यदि आप लूप में एकाधिक फाइलें लिखते हैं तो आप शायद कुछ फाइलों को ओवरराइट कर देंगे क्योंकि समय बराबर होगा। – Khan

3

यह सिर्फ एक थोड़ा और अधिक कुशल हो जाएगा - केवल एक SimpleDateFormat और प्रत्येक फ़ाइल के लिए दिनांक वस्तु है, साथ ही कोई स्ट्रिंग संयोजन।

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()); 
} 
16

यह शायद अधिक आसान है। तिथि और समय के रूप में फ़ाइल का नाम असाइन करने के लिए कोड की केवल एक पंक्ति। इस

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

} 
} 

यह है के साथ

String out = new SimpleDateFormat("yyyy-MM-dd hh-mm-ss'.tsv'").format(new Date()); 
1
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............"); 

     } 
}    
2

प्रयास करें प्रत्येक नई फ़ाइल और हर बार निष्पादन पैदा करता है।

संबंधित मुद्दे