2012-02-09 58 views
0

我想寫一個簡單的腳本,在世界時間轉換一行的第一個字段。字符串日期到世界時間轉換java

import java.util.*; 
import java.text.*; 
import java.io.*; 
public class StringToDate { 
public static void main(String[] argv) { 
    if (argv.length != 1) { 
     System.err.println("Usage: java StringToDate file.in"); 
     System.exit(1); 
    } 


try { 
    FileInputStream fstream = new FileInputStream(argv[1]); 
    String delims = "[,]+"; 
    DataInputStream in = new DataInputStream(fstream); 
    BufferedReader br = new BufferedReader(new InputStreamReader(in)); 
    String strLine; 
    while ((strLine = br.readLine()) != null) { 
    String[] tokens = strLine.split(delims); 
    DateFormat formatter ; 
    long epoch = new java.text.SimpleDateFormat ("yyyy-MM-dd HH:mm:ss").parse(tokens[0]).getTime(); 

    System.out.println(String.valueOf(epoch)+',' +tokens[1]+'\n'); 
     } 
    //Close the input stream 
    in.close(); 
    } 
    catch (Exception e){System.err.println("Error: " + e.getMessage());} 

} 
} 

文件的格式爲:

2012-02-12 17:00:00,(Sun) Kardemir Karabukspor v Fenerbahce 

兩個問題:

1)爲什麼這個代碼是無法打開文件,當我把的argv [1]的說法?

2)爲什麼世界時間是完全錯誤的數字?即輸出是

1329062400000,(Sun) Kardemir Karabukspor v Fenerbahce 

即通用時間是三個0的長度(實際上必須是1329062400)。

回答

3

1)你已經確保你的陣列只有一個項目,所以它是argv[0],而不是argv[1]。數組始終始於Java中的元素0。

2)Date.getTime()返回從曆元開始的毫秒數,而不是秒。如果你想秒,除以1000.當看到毫秒時,該值對我來說很好...