2012-09-18 85 views

回答

104

使用SimpleDateFormat

String string_date = "12-December-2012"; 

SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy"); 
try { 
    Date d = f.parse(string_date); 
    long milliseconds = d.getTime(); 
} catch (ParseException e) { 
    e.printStackTrace(); 
} 
9

看看到SimpleDateFormat類,它可以分析一個String並返回DateDate類的getTime方法。

3

您可以使用simpleDateFormat解析字符串日期。

6
  • 首先字符串轉換爲java.util.Date使用日期formatter
  • 使用getTime()從迄今獲得的毫秒的數
13
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy"); 
Date date = (Date)formatter.parse("12-December-2012"); 
long mills = date.getTime(); 
0

最簡單方法是使用日期使用Date()並獲取時間()

Date dte=new Date(); 
    long milliSeconds = dte.getTime(); 
    String strLong = Long.toString(milliSeconds); 
    System.out.println(milliSeconds) 
1

使用simpledateformat可以輕鬆實現它。

1)首先使用simpledateformatter將字符串轉換爲java.Date。

2)使用getTime方法獲取的毫秒的數量從日期

public class test { 
     public static void main(String[] args) { 
     String currentDate = "01-March-2016"; 
     SimpleDateFormat f = new SimpleDateFormat("dd-MMM-yyyy"); 
    Date parseDate = f.parse(currentDate); 
    long milliseconds = parseDate.getTime(); 
    } 
     } 

多個實例點擊here

0

試試下面的代碼

 SimpleDateFormat f = new SimpleDateFormat("your_string_format", Locale.getDefault()); 
     Date d = null; 
     try { 
      d = f.parse(date); 
     } catch (ParseException e) { 
      e.printStackTrace(); 
     } 
     long timeInMillis = d.getTime(); 
2

這是關於時間,有人提供了現代答案這個問題。在2012年問題被問到時,當時公佈的答案也是很好的答案。爲什麼2016年發佈的答案也使用當時較長的過時課程SimpleDateFormatDate對我來說有點神祕。 java.time,現代Java日期和時間API也被稱爲JSR-310,與合作非常好。您可以通過ThreeTenABP在Android上使用它,請參閱this question: How to use ThreeTenABP in Android Project

在大多數情況下,我建議使用毫秒,因爲在一天在UTC開始的時代。爲了獲得這些:

DateTimeFormatter dateFormatter 
      = DateTimeFormatter.ofPattern("d-MMMM-uuuu", Locale.ENGLISH); 
    String stringDate = "12-December-2012"; 
    long millisecondsSinceEpoch = LocalDate.parse(stringDate, dateFormatter) 
      .atStartOfDay(ZoneOffset.UTC) 
      .toInstant() 
      .toEpochMilli(); 
    System.out.println(millisecondsSinceEpoch); 

此打印:

1355270400000 

如果您需要在一些特定的時間段一天的開始時間,指定時間段,而不是UTC,例如:

  .atStartOfDay(ZoneId.of("Asia/Karachi")) 

正如預期的那樣這給了一個稍微不同的結果:

1355252400000 

還有一點需要注意,請記住爲您的DateTimeFormatter提供語言環境。我把12月份當作英文,其他語言在那個月被稱爲相同,所以請自己選擇適當的語言環境。如果您沒有提供語言環境,則格式化程序將使用JVM的語言環境設置,該設置在很多情況下都可以使用,然後在有一天您在具有不同語言環境設置的設備上運行應用程序時意外失敗。

相關問題