¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Cómo convertir una fecha y hora de entrada a UTC de forma sencilla

  • Creado 01/03/2024
  • Modificado 01/03/2024
  • 230 Vistas
0
Cargando...

Hola a todos,

Tengo una fecha y hora de entrada que debo convertir a UTC, por ejemplo

si es 1994-11-05T08:15:30-05:00, debe convertirse a 1994-11-05T13:15:30Z

Gracias

Pedro Pascal
Se unió el 07/03/2018
Pinterest
Telegram
Linkedin
Whatsapp

4 Respuestas

0
Cargando...

Hi, lo intenté pero estoy obteniendo este error:

'class' o 'interface' esperado ^

Estoy utilizando el código como se muestra a continuación:

Imports java.util.Date;java.text.SimpleDateFormat;

public String UTC(String p_localDateTime ,Container container){

String lv_dateFormateInUTC="";//Contendrá la fecha convertida final

Date lv_localDate = null;

String lv_localTimeZone ="";

SimpleDateFormat lv_formatter;

SimpleDateFormat lv_parser;

//crear un nuevo objeto Date utilizando la zona horaria de la ciudad especificada

lv_parser = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");

lv_parser.setTimeZone(TimeZone.getTimeZone("EST"));

try

{

lv_localDate = lv_parser.parse(p_localDateTime);

}

catch (java.text.ParseException e)

{

}

//Establecer el formato de salida imprime "2007/10/25 18:35:07 EDT(-0400)"

lv_formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss z'('Z')'");

lv_formatter.setTimeZone(TimeZone.getTimeZone(lv_localTimeZone));

System.out.println("convertirHoraLocalAUTC: " p_ciudad ": "+" La Fecha en la zona horaria local " + lv_formatter.format(lv_localDate));

//Convertir la fecha de la zona horaria local a la zona horaria UTC

lv_formatter.setTimeZone(TimeZone.getTimeZone("UTC"));

lv_dateFormateInUTC = lv_formatter.format(lv_localDate);

System.out.println("convertirHoraLocalAUTC: " p_ciudad ": "+" La Fecha en la zona horaria UTC " + lv_dateFormateInUTC);

return lv_dateFormateInUTC;

}

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Hi Kran,

I have tested this code.

Here you go for your exact requirement.

Your input should be only one to this UDF p_localDateTime

And do use substring to provide the input to dd-MM-yyyy HH:mm:ss format before passing it to the UDF.

Example : 1994-11-05T08:15:30-05:00 Use substring and concat to convert it to dd-MM-yyyy HH:mm:ss format 1994-11-05 08:15:30

Also in Function tab of message mapping editor import the additional thing.

java.text.SimpleDateFormat

java.util.Date


    public String converttoUTC(String p_localDateTime, Container container) throws StreamTransformationException{
    String lv_dateFormateInUTC="";//Will hold the final converted date   
    Date lv_localDate = null;   
    String lv_localTimeZone ="";   
    SimpleDateFormat lv_formatter;   
    SimpleDateFormat lv_parser;   
    //create a new Date object using the timezone of the specified city   
    lv_parser = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss");   
    lv_parser.setTimeZone(TimeZone.getTimeZone("EST"));   
    try
    {
    lv_localDate = lv_parser.parse(p_localDateTime);   
    }
    catch (java.text.ParseException e) 
    {
    }
    //Set output format prints "2007/10/25  18:35:07 EDT(-0400)"   
    lv_formatter = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss z'('Z')'");   
    lv_formatter.setTimeZone(TimeZone.getTimeZone(lv_localTimeZone));   
    //Convert the date from the local timezone to UTC timezone   
    lv_formatter.setTimeZone(TimeZone.getTimeZone("UTC"));   
    lv_dateFormateInUTC = lv_formatter.format(lv_localDate);   
    return lv_dateFormateInUTC;  
    }
  

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

Amitsri, gracias, pero esto parece normal concatenando z al existente... Tengo que agregar +4 horas al tiempo existente... eso significa que estoy convirtiendo la entrada al formato UTC... gracias

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019
0
Cargando...

CHK THIS:

input will be var1

execution type: single value..



String date1="";
String date2="";
String date3="";
    date1=var1.substring(0,10);
    date2=var1.substring(11,19);
   date3=date1+"T"+date2+"Z";
return date3;

Mapping:

Date -> UDF -> Output Date

Respondido el 15/04/2024
LUCIANO RIOJA GHIOTTO
Se unió el 13/07/2019

contacto@primeinstitute.com

(+51) 1641 9379
(+57) 1489 6964

© 2024 Copyright. Todos los derechos reservados.

Desarrollado por Prime Institute

¡Hola! Soy Diana, asesora académica de Prime Institute, indícame en que curso estas interesado, saludos!
Hola ¿Puedo ayudarte?