2012-09-18 13 views

risposta

104

Utilizzando 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

Date un'occhiata a SimpleDateFormat classe che può analizzare un String e restituire un Date e il metodo di Date classe getTime.

3

è possibile utilizzare simpleDateFormat per analizzare la data della stringa.

6
  • prima stringa convertito al java.util.Date con data formatter
  • Usa getTime() per ottenere il conto di millisecs dalla data
13
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy"); 
Date date = (Date)formatter.parse("12-December-2012"); 
long mills = date.getTime(); 
0

modo più semplice è utilizzata la data Utilizzo di Date() e get Ora()

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

utilizzando simpledateformat è possibile raggiungerlo facilmente.

1) Prima convertire la stringa in java.Date utilizzando semplicedateformatter.

metodo

2) Utilizzare getTime per ottenere il conto di millisecs dalla data

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

più Esempio clicca here

0

Prova sottostante Codice

 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

E 'ora che qualcuno fornisce la risposta moderna alla questa domanda. Nel 2012, quando è stata posta la domanda, le risposte riportate anche allora erano buone risposte. Perché le risposte pubblicate nel 2016 utilizzano anche le classi da lungo tempo obsolete SimpleDateFormat e Date è un po 'più un mistero per me. java.time, la moderna API data e ora Java nota anche come JSR-310, è molto più carina con cui lavorare. Puoi usarlo su Android tramite ThreeTenABP, vedi this question: How to use ThreeTenABP in Android Project.

Per la maggior parte degli scopi, si consiglia di utilizzare i millisecondi dall'epoca all'inizio del giorno in UTC.Per ottenere questi:

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

Questo stampa:

1355270400000 

Se si richiede l'ora all'inizio della giornata in qualche fuso orario specifico, specificare che il fuso orario, invece di UTC, ad esempio:

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

Come previsto questo dà un risultato leggermente diverso:

1355252400000 

Un altro punto da notare, ricorda di fornire un locale al tuo DateTimeFormatter. Ho preso dicembre per essere inglese, ci sono altre lingue in cui quel mese è chiamato lo stesso, quindi per favore scegli il locale appropriato. Se non hai fornito una locale, il formattatore userebbe l'impostazione locale della JVM, che potrebbe funzionare in molti casi, e poi inaspettatamente fallire un giorno quando si esegue l'app su un dispositivo con impostazioni internazionali diverse.

Problemi correlati