Java como cambiar el time zone a un Date

Vamos a examinar cómo cambiar el time zone de un date en java de distintos modos. Como cambiar el timezone de un java.util.Date usando SimpleDateFormat Debemos tener claro que la clase Date en Java no tiene time zone. java.util.Date representa la cantidad de segundos transcurridos desde la medianoche 1 de enero de 1970 a las cero horas (hora UTC). Esto significa que siempre el java.util.Date nos devolverá la hora para el time zone que este por default definida para el sistema. [Leer más]
Java  Java 8 

Java Convertir un List a un Map usando Stream

En este articulo veras como convertir un list a un map utilizando para ello un Stream disponible desde Java 8. ¿Cómo convertir un List a un Map? Partiendo de una lista de productos creamos un Stream public class Product { private long id; private String name; private String type; private Double price; public Product() { } public Product(long id, String name, String type, double price) { this.id = id; this. [Leer más]

Java 8 Stream map flatMap y filter

Stream map te permite leer cada elemento y transformar los valores que se encuentran en el Stream entregandote otro Stream con el resultado para seguir realizando operaciones. Cómo usar Stream map Como puedes ver en el ejemplo a continuación map() recibe una función como parámetro para realizar alguna transformación sobre cada elemento y devuelve otro Stream sobre el cual puedes seguir trabajando. Observa en el ejemplo a continuación transformamos cada elemento en un String en mayúscula y luego lo colocamos en una nueva lista. [Leer más]

Java 8 Variable Scope en Lambda

Variable Scope en Lambdas El acceso a variables dentro de lambdas puede ser algo confuso, pero es sencillo si lo ves con un ejemplo. Observa este código en el cual accedemos a los parámetros “text” y “count” desde la expresión lambda. public static void showText(String text, int count) { Runnable r = () -> { for (int i = 0; i < count; i++) { System.out.println(text); } }; new Thread(r). [Leer más]
Java  Java 8 

Java 8 Constructor por Referencia

Java Constructor por Referencia En Java 8 se han introducido importantes cambios como lambdas, interfaces funcionales y métodos por referencia. Veamos ahora cómo hacer uso de constructores por referencia. Si no has leido el articulo sobre métodos por referencia te recomiendo que le des un vistazo porque tiene mucho en común con el artículo a continuación. La diferencia es que aquí llamas al “new” en vez de llamar a un método. [Leer más]
Java  Java 8 

Java 8 Optional

Java 8 Optional Evitar los Nullpointer es uno de los problemas con los que habitualmente nos encontramos los programadores en Java. Continuamente realizamos operaciones para verificar que el valor no sea null o tener la precaución de devolver valores not null y a pesar de esto es habitual el fallo por los null pointer. Java 8 introduce Optional, este es un wrapper que nos ayuda a prevenir los nullpointer tan comunes en Java. [Leer más]

Java 8 como usar fechas y horas con la api java.time

Java 8 nos trae al fin una nueva api para el manejo de fechas. Nos encontramos dentro del paquete java.time con nuevas clases para resolver los problemas con fechas como LocalDate, horas con LocalTime o la combinación de fecha y hora con LocalDateTime. También incluye como es debido dentro de esta api el uso de zonas horarios con ZonedDateTime. Además los conceptos de Period para determinar el periodo entre dos fechas y Duration para determinar la duración entre dos horas. [Leer más]
Java  Java 8 

Java – como usar ExecutorService

Java ExecutorService ExecutorService nos simplifica las tareas asincronas proveyendo un pool de hilos que son manejados por esta API abstrayendonos del trabajo de crearlos y asignarles tareas a estos hilos. Utilizando la factory class Executors La forma más común para crear una instancia de ExecutorService es a través de la factory class Executors. Por ejemplo si deseas crear pool con 10 threads lo puedes hacer de este modo: ExecutorService executor = Executors. [Leer más]

Strategy Pattern con Spring Boot

Strategy Pattern con Spring Boot Un buen patrón para resolver la complejidad cuando debes implementar diferentes comportamientos según algún estado es el patrón strategy. Un patrón strategy encapsula comportamiento que podemos intercambiar en ejecución. Es decir, cambiar el comportamiento o lógica de negocio acorde al estado del modelo o contexto en el que te se encuentra, evitando el uso extensivo de if o switch en tu código. Es bastante simple. [Leer más]

Spring Boot + MySql + HikariCP

Configurar Spring Boot con MySql usando HikariCP Para configurar tu proyecto Spring con MySql utilizando HikariCP debes agregar las dependencias y configurar tu archivo properties con estos simples pasos. Dependencias Detalle de dependencias que necesitas para tu proyecto Spring con MySql y Hikari <dependencies> <!-- Spring boot --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <!-- Hikari --> <dependency> <groupId>com.zaxxer</groupId> <artifactId>HikariCP</artifactId> <version>2.6.0</version> </dependency> <!-- MySQL Connector --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency> </dependencies> Definición del archivo properties Debes especificar el dialect para MySql, y para el tipo de datasource indicar HikariDataSource. [Leer más]