¡Caminando hacia el éxito!

Aprende en Comunidad

Avalados por :

Como converter uma data e hora de entrada para UTC de forma simples.

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

Olá a todos,

Tenho uma data e hora de entrada que preciso converter para UTC, por exemplo

se for 1994-11-05T08:15:30-05:00, deve ser convertido para 1994-11-05T13:15:30Z

Obrigado

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

4 Respuestas

0
Cargando...

Olá, tentei, mas estou recebendo este erro:

'class' ou 'interface' esperado ^

Estou usando o código como mostrado abaixo:

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

public String UTC(String p_localDateTime ,Container container){

String lv_dateFormateInUTC="";//Irá conter a data convertida final

Date lv_localDate = null;

String lv_localTimeZone ="";

SimpleDateFormat lv_formatter;

SimpleDateFormat lv_parser;

//criar um novo objeto Date utilizando o fuso horário da cidade 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)

{

}

//Definir o formato de saída para imprimir "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 ": "+" A data no fuso horário local " + lv_formatter.format(lv_localDate));

//Converter a data do fuso horário local para o fuso horário UTC

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

lv_dateFormateInUTC = lv_formatter.format(lv_localDate);

System.out.println("convertirHoraLocalAUTC: " p_ciudad ": "+" A data no fuso horário UTC " + lv_dateFormateInUTC);

return lv_dateFormateInUTC;

}

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

Olá Kran,

Eu testei este código.

Aqui está para a sua necessidade exata.

Sua entrada deve ser apenas um para esta UDF p_localDateTime

E use substring para fornecer a entrada no formato dd-MM-yyyy HH:mm:ss antes de passá-la para a UDF.

Exemplo: 1994-11-05T08:15:30-05:00 Use substring e concat para convertê-lo para o formato dd-MM-yyyy HH:mm:ss formato 1994-11-05 08:15:30

Também na guia Função do editor de mapeamento de mensagens, importe a coisa adicional.

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, obrigado, mas isso parece normal, apenas concatenando z ao existente... Tenho que adicionar +4 horas ao tempo existente... isso significa que estou convertendo a entrada para o formato UTC... obrigado

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?