Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

200
Vistas
¿Cómo trato con el formato de fecha en Javascript?

Tengo problemas para descubrir la forma correcta de reformatear/convertir campos de fecha en js.

Estoy tratando de crear un informe usando el transmisor Kafka ODF y el conector receptor y un js en el medio para manejar la transformación, desde un archivo EDR de entrada.

Ejemplo de informe O/P

 MSISDN,DeleteReason,DeleteTime 12554564364661,3,2022-02-21T14:08:39.795Z

Formato de informe esperado

 MSISDN,DeleteReason,DeleteTime 12554564364661,3,20220221140839

Nota: - Quiere transformar el campo DeleteTime a un formato diferente "YYYYMMDDhhmiss", actualmente YYYY-MM-DDTHH:MM:SS.MISZ .

Sección de transformación en el conector del fregadero

 transforms: valueTransform transforms.valueTransform.type: "com.openet.odf.transformer.ValueTransform" transforms.valueTransform.script: "/opt/kafka/external-configuration/sink-hookpoint/valueTransform.js"

eventTimestamp[or DeleteTime] es un campo de fecha entrante declarado como una cadena en el esquema. ejemplo: 2022-02-21T14:08:39.795Z

Guión js

 valueTransform.js: | function onValueTransform(_schema, _value) { var SchemaAndValue = Java.type('org.apache.kafka.connect.data.SchemaAndValue') var Date = Java.type('java.util.Date') var d = new Date.parse(_value.get("eventTimestamp")) var year = d.getFullYear() var month = ('0' + (d.getMonth() + 1)).slice(-2) var day = ('0' + d.getDate()).slice(-2) var hours = ('0' + d.getHours()).slice(-2) var minutes = ('0' + d.getMinutes()).slice(-2) var seconds = ('0' + d.getSeconds()).slice(-2) var modified_delete_time = year + month + day + hours + minutes + seconds _value.put("eventTimestamp",modified_delete_time) return new SchemaAndValue(_schema, _value) }

Intenté usar Date, SimpleDateFormat, etc., pero nada de eso funciona y obtiene diferentes errores con cada intento.

about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Gracias, Foro.

Pude usar Calendar y SimpleDateFormat para lograr los resultados deseados. Solución a continuación

 valueTransform.js: | function onValueTransform(_schema, _value) { var SchemaAndValue = Java.type('org.apache.kafka.connect.data.SchemaAndValue') var Date = Java.type('java.util.Date') var SimpleDateFormat = Java.type('java.text.SimpleDateFormat') var Calendar = Java.type('java.util.Calendar') var sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss") var EventDate = sdf.parse(_value.get("eventTimestamp")) sdf=new SimpleDateFormat("yyyyMMddHHmmss") var cal = Calendar.getInstance() cal.setTime(EventDate) EventDate = cal.getTime() var formattedDate = sdf.format(EventDate) _value.put("eventTimestamp",formattedDate) return new SchemaAndValue(_schema, _value) }
about 4 years ago · Juan Pablo Isaza Denunciar

0

No hay nada razonable incorporado. Puede usar Moment Timezone para Moment.js en Javascript.

 var actualDateTime = moment("2022-02-21T14:08:39.795Z"); var f = "YYYYMMDDhhmmss"; console.log(actualDateTime.format(f)) // By passing format into the format function to get it done
about 4 years ago · Juan Pablo Isaza Denunciar

0

En la mayoría de los casos, tratar con Fechas puede ser un proceso complicado.

Consideraría elegir una biblioteca de fechas, por ejemplo, https://www.npmjs.com/package/luxon .

Mi primera opción sería Moment.js, pero el proyecto está obsoleto.

Con Luxon, puede confiar en las utilidades de análisis y formato, algo así:

 DateTime.fromISO('2022-02-23T08:30:00').toFormat('yyyyMMddhhmmss')
about 4 years ago · Juan Pablo Isaza Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda