2012-09-18 36 views

Respuesta

104

Usando 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

echar un vistazo para SimpleDateFormat clase que puede analizar un String y devolver una Date y el método de la clase DategetTime.

3

puede usar el formato simpleFecha para analizar la fecha de la cadena.

6
  • cadena primer convertido a java.util.Date usando fecha formatter
  • Uso getTime() para obtener el recuento de millisecs partir de la fecha
13
SimpleDateFormat formatter = new SimpleDateFormat("dd-MMM-yyyy"); 
Date date = (Date)formatter.parse("12-December-2012"); 
long mills = date.getTime(); 
0

La manera más fácil se utiliza la fecha Usar Date() y obtener Time()

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

usando simpledateformat puede lograrlo fácilmente.

1) Primera cadena de conversión a java.Fecha mediante simpledateformatter.

método

2) Uso getTime para obtener el recuento de millisecs partir de la fecha

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

más Ejemplo clic here

0

Try continuación Código

 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

Es hora de que alguien nos da la respuesta moderna a esta pregunta. En 2012, cuando se formuló la pregunta, las respuestas también publicadas en ese momento fueron buenas respuestas. Por qué las respuestas publicadas en 2016 también usan las clases obsoletas entonces largas SimpleDateFormat y Date es un poco más de un misterio para mí. java.time, la API moderna de fecha y hora de Java también conocida como JSR-310, es mucho más agradable para trabajar con ella. Puede usarlo en Android a través de ThreeTenABP, consulte this question: How to use ThreeTenABP in Android Project.

Para la mayoría de los propósitos, recomiendo usar los milisegundos desde la época al inicio del día en UTC.Para obtener estos datos:

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

Esta impresora:

1355270400000 

Si necesita el tiempo al comienzo del día en alguna zona horaria específica, especifican que la zona horaria en lugar de UTC, por ejemplo:

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

Como era de esperar esto da un resultado ligeramente diferente:

1355252400000 

Otro punto a tener en cuenta, recuerde proporcionar una configuración regional a su DateTimeFormatter. Tomé diciembre para ser inglés, hay otros idiomas donde ese mes se llama igual, así que elija el lugar apropiado. Si no proporcionó una configuración regional, el formateador utilizará la configuración regional de la JVM, que puede funcionar en muchos casos y luego, inesperadamente, fallará un día cuando ejecute la aplicación en un dispositivo con una configuración regional diferente.

Cuestiones relacionadas