2012-03-22 96 views
1

我知道如何使用file.lastModified();。 當我得到我println(例如):星期六3月17日09:24:33 GMT + 01:00 2012. 但是有可能我只獲得日期,月份和年份作爲數字,例如:17 03 2012選擇日,月和年out file.lastModified();

是他們的方式來做到這一點,可能是一個過濾器,或其他功能,以獲得數字最後修改日期?

+0

的SimpleDateFormat類可以對您有用.... – aProgrammer 2012-03-22 08:47:44

+0

你有一個新的日期(file.lastModified())在你的代碼中的某個地方? lastModified返回一個長整數。 – oers 2012-03-22 10:27:05

回答

2

您可以根據文檔

File.lastModifed()

應返回表示時間長值使用的SimpleDateFormat類,即

package com.example.file; 

import java.io.File; 
import java.text.SimpleDateFormat; 

public class GetFileLastModifiedExample 
{ 
    public static void main(String[] args) 
    { 
    File file = new File("\\somefile.txt"); 

    System.out.println("Before Format : " + file.lastModified()); 

    SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); 

    System.out.println("After Format : " + sdf.format(file.lastModified())); 
    } 
} 
+0

[lastModified](http://docs.oracle.com/javase/1.4.2/docs/api/java/io/File.html#lastModified%28%29)的返回值很長。 – oers 2012-03-22 08:49:24

+0

不得不改變'SimpleDateFormat sdf = new SimpleDateFormat(「DD/MM/YYYY」);'SimpleDateFormat sdf = new SimpleDateFormat(「dd/MM/yyyy」);' 之後,它完美的工作。 – Bigflow 2012-03-22 09:04:37

0

文件最後被修改,以時間爲單位進行測量,以毫秒爲單位。延亨默可以結合Calendar

Calendar rightNow = Calendar.getInstance() 
    rightNow.setTimeInMillis(longValue) 

使用長值並使用rightNow.get(...)

以檢索日,月和年

+1

或格式化如下:System.out.format(「%1 $ td%1 $ tm%1 $ tY」,rightNow); – Kennet 2012-03-22 09:06:22

+0

@Kennet nerver嘗試了你的建議。 – Blackbelt 2012-03-22 09:10:20

1

試試這個,

long longDate = file.lastModified();   
Date date = new Date(longDate); 
SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy"); 
String newDate = formatter.format(date); 
System.out.println("Formatted date " + newDate); 
2

是文件中的Java。 io.File對象?

lastModified應返回以毫秒爲單位的時間。您可以創建與上次更改返回值和格式構造SimpleDateFormat輸出Date對象

Date date = new Date(file.lastModified()); 
    System.out.println(date); 

    SimpleDateFormat sdf = new SimpleDateFormat("d M y"); 
    System.out.println(sdf.format(date));