2011-06-30 43 views
5

Tôi đang phải đối mặt với một kết quả lạ khi định dạng mili giây để một định dạng SimpleDate:mili giây Format để định dạng simpledate

Output là:

Start date time: 11/06/30 09:45:48:970 
    End date time: 11/06/30 09:45:52:831 
    Execution time: 01:00:03:861 

Script:

long dateTimeStart = System.currentTimeMillis();  
    // some script execution here 
    long dateTimeEnd = System.currentTimeMillis(); 

    "Start date time: " + GlobalUtilities.getDate(dateTimeStart, "yy/MM/dd hh:mm:ss:SSS"); 
    "End date time: " + GlobalUtilities.getDate(dateTimeEnd, "yy/MM/dd hh:mm:ss:SSS"); 
    "Execution time: " + GlobalUtilities.getDate((dateTimeEnd - dateTimeStart), "hh:mm:ss:SSS"); 

Phương pháp:

public static String getDate(long milliseconds, String format) 
    { 
     SimpleDateFormat sdf = new SimpleDateFormat(format); 
     return sdf.format(milliseconds); 
    } 

Bất kỳ ý tưởng nào tại sao giá trị thời gian thực hiện bị tắt? Nó phải là 00: 00: 03: 861, không phải 01: 00: 03: 861

Cảm ơn

Trả lời

1

Thời gian thực hiện là tắt vì các nhà xây dựng ngày mất một thời gian dài xác định số mili giây kể từ 1970-01- 01.

+0

Và làm cách nào để khắc phục điều đó? – user706058

+2

Đây là một câu trả lời stackoverflow với một số ý tưởng thực sự tốt đẹp! http://stackoverflow.com/questions/625433/how-to-convert-milliseconds-to-x-mins-x-seconds-in-java –

+0

Ngoài ra, như một lưu ý phụ, tôi thực sự có thể đề xuất API JodaTime khi xử lý với ngày tháng trong Java. Nó thực sự đẹp hơn nhiều so với các ngày Java được xây dựng sẵn. http://joda-time.sourceforge.net/ –

3

vì bạn chuyển đổi chênh lệch thời gian thành ngày. Cụ thể, đây chính là điều xảy ra:

  1. SimpleDateFormat.format (long mili giây) tính ngày: Thời gian sinh Unix + mili giây.
  2. Thời gian này cũng được điều chỉnh với chênh lệch múi giờ từ GMT.
  3. Với hai thông tin này, bạn sẽ nhận được kết quả lạ. Để xác minh thông tin ở trên, bạn có thể thêm ngày, tháng và năm vào ngày.

Thật không may, bạn có thể khắc phục bằng cách chuyển đổi thủ công thời gian của mình.

Các vấn đề liên quan