Latest web development tutorials

Java Fecha Hora

Fecha paquete java.util ofrece clases para encapsular la fecha y la hora actuales. clase Date proporciona dos constructores para crear instancias de un objeto Date.

El primer constructor utiliza la fecha y hora actuales para inicializar el objeto.

Date( )

El segundo constructor acepta un parámetro, que es el número de milisegundos desde 1 de enero de 1970 del.

Date(long millisec)

Una vez creado el objeto Date, puede llamar al siguiente método.

No. Método y Descripción
1 boolean después de (fecha Fecha)
Si este método se llama cuando el objeto Date después de la fecha especificada devuelve verdadero, de lo contrario, devuelve false.
2 boolean antes del (fecha Fecha)
Si este método se llama cuando el objeto Date antes de la fecha especificada devuelve verdadero, de lo contrario, devuelve false.
3 clon Object ()
Devuelve una copia de este objeto.
4 int compareTo (fecha Fecha)
Comparar este método es llamado cuando el objeto de fecha para la fecha especificada. Devolver 0 cuando los dos son iguales. Llame objeto antes de la fecha especificada devuelve un número negativo. Llame objeto después de la fecha especificada devuelve un número positivo.
5 int compareTo (Object obj)
Si obj es de tipo Fecha, la operación es equivalente a compareTo (Fecha). De lo contrario, se lanza ClassCastException.
6 boolean equals (Object) de fecha
Cuando se llama a este método y el objeto Date es igual a la fecha especificada cuando vuelva la verdad, de lo contrario devuelve false.
7 getTime largo ()
Devuelve el número de milisegundos desde 1 de enero 1970 00:00:00 GMT representado por este objeto Date.
8 int hashCode ()
Devuelve el valor de código hash para este objeto.
9 setTime vacío (mucho tiempo)

Yo 1 de enero de 1970 00:00:00 GMT milisegundos más tarde el tiempo para ajustar la hora y la fecha.
10 String toString ()
Fecha de Conversión representación del objeto String, y devuelve la cadena.

Obtener la fecha y la hora actual

Java se pone la fecha y hora actuales es muy simple, utilice el método objeto de fecha toString () para imprimir la fecha y la hora actuales de la siguiente manera:

import java.util.Date;
  
public class DateDemo {
   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用 toString() 函数显示日期时间
       System.out.println(date.toString());
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

Mon May 04 09:51:52 CDT 2013

Comparar fechas

Java utiliza tres métodos para comparar las dos fechas siguientes:

  • Utilice el método getTime () para obtener dos fechas (1 de enero 1970 hasta el número de milisegundos desde entonces), a continuación, comparar los dos valores.
  • Usar antes de (), después () y equals (). Por ejemplo, un mes antes, 12 de 18, la nueva fecha (99, 2, 12) .Antes (new Date (99, 2, 18)) devuelve verdadero.
  • método de uso compareTo (), que se define por la interfaz Comparable, clase Date implementa esta interfaz.

El uso de SimpleDateFormat fechas de formato

SimpleDateFormat clase es una manera sensible a la localidad para el formato y las fechas de análisis sintáctico. SimpleDateFormat le permite seleccionar cualquier fecha formato de usuario personalizada y la hora de ejecutar. Por ejemplo:

import java.util.*;
import java.text.*;

public class DateDemo {
   public static void main(String args[]) {

      Date dNow = new Date( );
      SimpleDateFormat ft = 
      new SimpleDateFormat ("E yyyy.MM.dd 'at' hh:mm:ss a zzz");

      System.out.println("Current Date: " + ft.format(dNow));
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

Current Date: Sun 2004.07.18 at 04:14:09 PM PDT

formato de codificación simple DateFormat

cadena de patrón de tiempo se utiliza para especificar el formato de hora. En este modo, todas las letras ASCII se reservan como se definen cartas patrón como sigue:

carta descripción ejemplo
G era marca AD
y cuatro años 2001
M mes Julio o 07
d fecha mes 10
h AM / PM formato (1 ~ 12 horas) 12
H La hora del día (0 a 23) 22
m El número de minutos 30
s segundos 55
S milisegundos 234
E Día de la semana martes
D Los días del año 360
F Las primeras semanas del mes de la semana 2 (segundo miércoles en julio)
w Las primeras semanas del año 40
W Las primeras semanas del mes 1
una AM / PM marca primer ministro
k La hora del día (1 a 24) 24
K AM / PM formato (0 ~ 11) horas 10
z huso horario Eastern Standard Time
' delimitador de texto delimitador
" Las comillas simples `

formato a las fechas uso printf

printf método puede ser fácilmente hora y la fecha formateada. Usar formato de dos letras, empieza con T y en la siguiente tabla al final de una carta. Por ejemplo:

import java.util.Date;

public class DateDemo {

  public static void main(String args[]) {
     // 初始化 Date 对象
     Date date = new Date();

     // 使用toString()显示日期和时间
     String str = String.format("Current Date/Time : %tc", date );

     System.out.printf(str);
  }
}

Los ejemplos anteriores resultados compilados son los siguientes:

Current Date/Time : Sat Dec 15 16:37:57 MST 2012

Si es necesario repetir la fecha de la oferta, a continuación, utilizar este método para dar formato a cada parte de ella se complica un poco. Por lo tanto, se puede utilizar una cadena de formato señaló que el parámetro índice de formateado.

El índice debe inmediatamente detrás%, y debe terminar con $. Por ejemplo:

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 使用toString()显示日期和时间
       System.out.printf("%1$s %2$tB %2$td, %2$tY", 
                         "Due date:", date);
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

Due date: February 09, 2004

Alternativamente, se puede utilizar el <bandera. Muestra los parámetros que se utilizarán de nuevo previamente formateada. Por ejemplo:

import java.util.Date;
  
public class DateDemo {

   public static void main(String args[]) {
       // 初始化 Date 对象
       Date date = new Date();
        
       // 显示格式化时间
       System.out.printf("%s %tB %<te, %<tY", 
                         "Due date:", date);
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

Due date: February 09, 2004

Los caracteres de conversión de fecha y hora

carácter descripción ejemplo
c Fecha y hora completa Sab Abr 04 09:51:52 CDT 2009
F ISO 8601 formato de fecha 2004-02-09
D formato de fecha de EE.UU. (mes / día / año) 02/09/2004
T Tiempo 24 horas 18:05:19
r de 12 horas 06:05:19 pm
R tiempo de 24 horas, no incluye segundos 18:05
Y 4 año (con un cero a la izquierda) 2004
y Después de dos años (con un cero a la izquierda) 04
C hace 2 años (con un cero a la izquierda) 20
B Nombre completo del mes febrero
b mes Acrónimo febrero
n 2 meses (con un cero a la izquierda) 02
d 2 días (con un cero a la izquierda) 03
e 2 días (sin el 0) 9
la Semana nombre completo lunes
una semana corta Mon
j 3 años (con un cero a la izquierda) 069
H 2 horas (con un cero a la izquierda), 00-23 18
k 2 horas (sin el 0), 0-23 18
yo 2 horas (con un cero a la izquierda), 01-12 06
l 2 horas (sin el 0), 1-12 6
M 2 minutos (con un cero a la izquierda) 05
S 2 segundos (con un cero a la izquierda) 19
L 3 ms (con un cero a la izquierda) 047
N 9 ns (con un cero a la izquierda) 047000000
P Capitalizado en la tarde del pabellón primer ministro
p En la tarde del logotipo de minúsculas pm
z Desplazamiento de GMT en el RFC 822 Digital -0800
Z huso horario PST
s El número de segundos desde el 1970-01-01 00:00:00 GMT 1078884319
Q Desde 1970-01-01 00:00:00 GMT centavos maravillosa 1078884319047

Hay otra fecha y hora de la clase útil. Para más detalles, puede hacer referencia a la documentación estándar de Java.


Analizar una cadena a la vez

SimpleDateFormat clase tiene algunos métodos adicionales, especialmente parse (), que trataron de seguir el formato de almacenamiento de objetos SimpleDateFormat dado a analizar la cadena. Por ejemplo:

import java.util.*;
import java.text.*;
  
public class DateDemo {

   public static void main(String args[]) {
      SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd"); 

      String input = args.length == 0 ? "1818-11-11" : args[0]; 

      System.out.print(input + " Parses as "); 

      Date t; 

      try { 
          t = ft.parse(input); 
          System.out.println(t); 
      } catch (ParseException e) { 
          System.out.println("Unparseable using " + ft); 
      }
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

$ java DateDemo
1818-11-11 Parses as Wed Nov 11 00:00:00 GMT 1818
$ java DateDemo 2007-12-01
2007-12-01 Parses as Sat Dec 01 00:00:00 GMT 2007

Java latente (sueño)

sleep () hace que el hilo actual en el estado de estancamiento (bloquea el hilo actual), por lo que el uso de la CPU, el propósito es mantener el hilo actual solo ocupan recursos de la CPU obtenidos en el proceso de dejar un poco de tiempo al azar otro hilo de ejecución.

Puede dejar dormir al programa de un milisegundo largo período de tiempo o de cualquiera de la vida de su equipo. Por ejemplo, el siguiente programa va a dormir tres segundos:

import java.util.*;
  
public class SleepDemo {
   public static void main(String args[]) {
      try { 
         System.out.println(new Date( ) + "\n"); 
         Thread.sleep(1000*3);   // 休眠3秒
         System.out.println(new Date( ) + "\n"); 
      } catch (Exception e) { 
          System.out.println("Got an exception!"); 
      }
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

Thu Sep 17 10:20:30 CST 2015

Thu Sep 17 10:20:33 CST 2015

tiempo de medición

He aquí un ejemplo que muestra cómo medir intervalos de tiempo (en milisegundos):

import java.util.*;
  
public class DiffDemo {

   public static void main(String args[]) {
      try {
         long start = System.currentTimeMillis( );
         System.out.println(new Date( ) + "\n");
         Thread.sleep(5*60*10);
         System.out.println(new Date( ) + "\n");
         long end = System.currentTimeMillis( );
         long diff = end - start;
         System.out.println("Difference is : " + diff);
      } catch (Exception e) {
         System.out.println("Got an exception!");
      }
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

Fri Jan 08 09:48:47 CST 2016

Fri Jan 08 09:48:50 CST 2016

Difference is : 3019

clase Calendario

Ahora estamos en condiciones para dar formato y crear un objeto de fecha, pero ¿cómo podemos establecer y recuperar una parte específica de la misma datos de fecha, tales como horas, días o minutos? ¿Cómo podemos, en estas partes de la fecha más o menos ? la respuesta es utilizar la categoría Calendario.

Muchas características de gran alcance que la clase Calendar clase Date, sino también en la implementación de la clase Date compleja.

Calendario de clase es una clase abstracta que implementa una subclase específica de los objetos de uso real, la creación de objetos es transparente para el programador sólo necesita ser creado para utilizar el método getInstance.

Crear un objeto Calendar que representa la fecha actual del sistema

Calendar c = Calendar.getInstance();//默认是当前日期

Crear una fecha especificada objeto Calendar

Utilice la clase Calendar representa un momento determinado, es necesario crear primero un objeto Calendar, y luego ajusta los parámetros de fecha objeto de completar.

//创建一个代表2009年6月12日的Calendar对象
Calendar c1 = Calendar.getInstance();
c1.set(2009, 6 - 1, 12);

Calendario tipo de campo objeto de la clase

tipo de calendario utilizado en estas constantes representan diferentes significados, muchos pensaron que esta clase se utiliza realmente en el JDK

constante descripción
Calendar.YEAR años
Calendar.MONTH mes
Calendar.DATE fecha
Calendar.DAY_OF_MONTH Fecha, e idénticas a los campos significado anteriormente
Calendar.HOUR horas 12 horas
Calendar.HOUR_OF_DAY horas 24 horas
Calendar.MINUTE minuto
Calendar.SECOND segundo
Calendar.DAY_OF_WEEK Día de la semana

Ajuste de Calendario información objeto de la clase

configuraciones conjunto

Tales como:

Calendar c1 = Calendar.getInstance();

llame a:

public final void set(int year,int month,int date)
c1.set(2009, 6 - 1, 12);//把Calendar对象c1的年月日分别设这为:2009、6、12

Utilice la configuración del tipo de campo

Si sólo se establece un campo, como la fecha valor se puede ajustar mediante los siguientes métodos:

public void set(int field,int value)

El objeto Date representa alquilo C1 se establece en 10, todos los demás valores se recalculan

c1.set(Calendar.DATE,10);

El objeto representa la c1 año se establece en 2008, todos los demás valores se recalculan

c1.set(Calendar.YEAR,2008);

Significado de otras propiedades de campo establece de modo

Añadir configuración

Calendar c1 = Calendar.getInstance();

La fecha prevista más el 10 C1, C1 también se expresa como 10 días después de la fecha, todos los demás valores se recalculan

c1.add(Calendar.DATE, 10);

La fecha objetivo menos 10 C1 y C1 se expresa también como una fecha de hace 10 días, se volverá a calcular todos los otros valores

<pre>c1.add(Calendar.DATE, -10);

añadir significado otras propiedades de campo de modo

objeto de la clase calendario para obtener información

Calendar c1 = Calendar.getInstance();
// 获得年份
int year = c1.get(Calendar.YEAR);
// 获得月份
int month = c1.get(Calendar.MONTH) + 1;
// 获得日期
int date = c1.get(Calendar.DATE);
// 获得小时
int hour = c1.get(Calendar.HOUR_OF_DAY);
// 获得分钟
int minute = c1.get(Calendar.MINUTE);
// 获得秒
int second = c1.get(Calendar.SECOND);
// 获得星期几(注意(这个与Date类是不同的):1代表星期日、2代表星期1、3代表星期二,以此类推)
int day = c1.get(Calendar.DAY_OF_WEEK);

clase GregorianCalendar

Calendario de clase implementa el calendario gregoriano, clase GregorianCalendar Calendario es una aplicación concreta.

Calendario de getInstance () devuelve un valor predeterminado con la zona local y la hora actuales inicializado objeto GregorianCalendar. GregorianCalendar define dos campos: AD y BC. Estos representan dos de calendario define la época.

A continuación se enumeran algunos constructor de objetos GregorianCalendar:

No. Constructor y Descripción
1 GregorianCalendar ()
Cuando se tiene la zona horaria predeterminada regional predeterminada Construye una corriente GregorianCalendar predeterminado.
2 GregorianCalendar (int año, int mes, fecha int)
Cuando se tiene la zona predeterminada por defecto la configuración regional Construye un GregorianCalendar con el conjunto fecha dada
3 GregorianCalendar (int año, int mes, fecha, int hora, int minuto)
Que tiene una zona horaria predeterminada regional predeterminada para GregorianCalendar construye una fecha y hora determinadas.
4 GregorianCalendar (int año, int mes, fecha, int hora, minuto int, int segundo)
Que tiene una zona horaria predeterminada regional predeterminada para GregorianCalendar construye una fecha y hora determinadas.
5 GregorianCalendar (Locale aLocale)
Cuando se tiene que establecer el área de configuración regional predeterminada Construye una hora actuales en función GregorianCalendar.
6 GregorianCalendar (zona de zona horaria)
En la zona horaria determinada configuración regional predeterminada construir un GregorianCalendar basado en la hora actual.
7 GregorianCalendar (zona de zona horaria, Locale aLocale)
En una zona horaria determinada localidad dada Construye un GregorianCalendar basado en la hora actual.

Aquí está una lista de clase GregorianCalendar proporciona algunos métodos útiles:

No. Método y Descripción
1 void add (int campo, cantidad int )
De acuerdo con las normas especificadas calendario (firmado) cantidad de tiempo para el campo de calendario dado.
2 computeFields protected void ()
UTC conversión ms valor umbral de tiempo
3 protegida computeTime void ()
Cubriendo Calendario, Convierte los valores de campo de tiempo a UTC como milisegundos
4 boolean equals (Object obj)
Compara esta GregorianCalendar al objeto especificado.
5 int get (int campo)
Obtiene el valor de tiempo del campo especificado
6 int getActualMaximum (int campo)
Devuelve la fecha actual, el valor máximo de un campo dado
7 int getActualMinimum (int campo)
Devuelve la fecha actual, el valor mínimo de un campo dado
8 int getGreatestMinimum (int campo)
GregorianCalendar Devuelve el valor mínimo más alto para el campo de calendario dado.
9 Fecha getGregorianChange ()
Obtener fecha de cambio gregoriano.
10 int getLeastMaximum (int campo)
Devuelve este caso GregorianCalendar de un campo de calendario dado el valor máximo más bajo
11 int getMaximum (int campo)
Devuelve ejemplo GregorianCalendar dado el máximo campo de calendario.
12 Fecha getTime ()
Obtener la hora actual del calendario.
13 getTimeInMillis largos ()
Obtener un calendario con una representación de entero largo de la hora actual
14 GetTimeZone zona horaria ()
Obtener zona horaria.
15 int getMinimum (int campo)
Volver al valor mínimo de un campo determinado.
16 int hashCode ()
Reescribir código hash.
17 booleano ESAÑOBISIESTO (int año)
Determina si el año determinado es un año bisiesto.
18 rollo vacío (campo int, boolean arriba )
En el campo de tiempo determinado para sumar o restar una única unidad de tiempo (arriba / abajo), sin cambiar los campos más grandes.
19 conjunto vacío (campo int, int value )
Con el campo de valor de tiempo especificado.
20 conjunto vacío (int año, int mes , int fecha)
Ajuste el año, el valor del mes y el día.
21 conjunto vacío (int año, int mes , fecha, int hora, int minuto)
Ajustar el año, mes, día, hora, minuto valor.
22 conjunto vacío (int año, int mes , fecha, int hora, minuto int, int segundo)
Ajuste el año, hora, minuto y segundo valores del mes, día.
23 setGregorianChange vacío (fecha Fecha)
Establece la fecha de cambio GregorianCalendar.
24 setTime vacío (fecha Fecha)
Con el tiempo actual del conjunto dado fecha de calendario.
25 setTimeInMillis void (largo) Millis
Con un número dado de tipo long es la hora actual del conjunto de milisegundos Calendario.
26 settimezone vacío (valor de zona horaria)
Con los ajustes de zona horaria a la zona horaria actual.
27 String toString ()
Devuelve una cadena que representa el calendario.

Ejemplos

import java.util.*;
  
public class GregorianCalendarDemo {

   public static void main(String args[]) {
      String months[] = {
      "Jan", "Feb", "Mar", "Apr",
      "May", "Jun", "Jul", "Aug",
      "Sep", "Oct", "Nov", "Dec"};
      
      int year;
      // 初始化 Gregorian 日历
      // 使用当前时间和日期
      // 默认为本地时间和时区
      GregorianCalendar gcalendar = new GregorianCalendar();
      // 显示当前时间和日期的信息
      System.out.print("Date: ");
      System.out.print(months[gcalendar.get(Calendar.MONTH)]);
      System.out.print(" " + gcalendar.get(Calendar.DATE) + " ");
      System.out.println(year = gcalendar.get(Calendar.YEAR));
      System.out.print("Time: ");
      System.out.print(gcalendar.get(Calendar.HOUR) + ":");
      System.out.print(gcalendar.get(Calendar.MINUTE) + ":");
      System.out.println(gcalendar.get(Calendar.SECOND));
      
      // 测试当前年份是否为闰年
      if(gcalendar.isLeapYear(year)) {
         System.out.println("当前年份是闰年");
      }
      else {
         System.out.println("当前年份不是闰年");
      }
   }
}

Los ejemplos anteriores resultados compilados son los siguientes:

Date: Apr 22 2009
Time: 11:25:27
当前年份不是闰年