Salesforce Apex: formato de fecha

Salesforce Apex Formato De Fecha



El seguimiento de los detalles de los clientes en Cuentas/Contactos es muy importante en la Gestión de relaciones con los clientes (CRM). En función de la fecha, suceden todos los procesos, como la compra, la cotización y el servicio. Veamos cómo crear la fecha a partir de una cadena en Salesforce y convertir la fecha en una cadena. Como parte de este tutorial, también veremos los métodos que se aplican en la fecha formateada, como agregar días, años, meses, etc., con ejemplos.

Clase de fecha de Apex

La clase de fecha admite todos los métodos de fecha que son primitivos. Utiliza el espacio de nombres 'Sistema'. Podemos usar el método valueOf() de esta clase para convertir la cadena a un formato de fecha. Después de formatear la fecha, aplicamos algunos métodos para agregar los días, meses, años, etc., a esta fecha formateada usando algunos métodos que también están disponibles en esta clase de fecha.







Primero, veremos cómo convertir la cadena a la fecha usando el método valueOf() en Salesforce Apex.



Fecha.valorDe()

valueOf() en Apex está disponible en la clase 'Fecha' que toma la cadena como un argumento que convierte la cadena especificada al formato de fecha. La cadena de entrada (parámetro) incluye tres atributos: año, mes y día. Los tres se combinan/concatenan y se pasan al método.



Sintaxis: ValorDe()

Como ya se mencionó, necesitamos declarar una variable de la clase 'Fecha' y pasarle la cadena.





Fecha date_variable= date.valueOf(string_date_format);

Ejemplo:

Paso 1:

Tengamos una cadena que contenga el 'Año-Mes-Día'.

// Declarar año, mes y día uno por uno

Cadena Año = '2023';

Cadena Mes = '4';

Cadena Día = '5';

// Concatenar todos ellos en una cadena

String string_type = Año + '-' + Mes + '-' + Día;

system.debug(tipo_de_cadena);

Producción:



Paso 2:

Ahora, convierta la cadena 'Fecha' anterior en 'Fecha' mediante el método valueOf() de la clase 'Fecha' de Apex.

// Convertir cadena-Fecha a Fecha

Fecha convertida_fecha = fecha.valorDe(string_type);

system.debug(converted_date);

Producción:

Podemos ver que después de convertir a 'Fecha', automáticamente devuelve la fecha en el formato DateTime. No considerará el Tiempo (Horas:Minutos:Segundos) incluso si los pasa al método valueOf(). El formato devuelto es AAAA-MM-DD HH:MM:SS.

Convertir la fecha en cadena

Hay dos formas de convertir la 'Fecha' en 'Cadena'. Una forma compatible con Apex es usar el método format(). La otra forma es extraer manualmente los atributos de 'Fecha' (año, mes y día) y concatenarlos en una cadena. Veámoslos uno por uno.

1. Formato()

El método format() está disponible en la clase 'Fecha' en Apex, que convierte la 'Fecha' en la cadena en el formato 'M/D/YYYY'. También podemos pasar el formato especificado como parámetro a este método. El formato especificado es el formato predeterminado.

Sintaxis:

input_date.format(“format_type”)

Ejemplo:

Consideremos el ejemplo anterior y volvamos a convertir la 'Fecha' en 'Cadena' usando el método format(). No proporcionamos ningún formato específico para el método format().

// Declarar año, mes y día uno por uno

Cadena Año = '2023';

Cadena Mes = '4';

Cadena Día = '5';

// Concatenar todos ellos en una cadena

String string_type = Año + '-' + Mes + '-' + Día;

// Convertir cadena-Fecha a Fecha

Fecha convertida_fecha = fecha.valorDe(string_type);

system.debug(converted_date);

// formato()

system.debug(converted_date.format());

Producción:

2. Usando el método de clase de fecha

En este escenario, extraemos el año, el mes y el día por separado de la 'Fecha' mediante los métodos disponibles en la clase 'Fecha' de Apex. A continuación, concatenamos estos tres para devolver la 'Fecha' en formato 'Cadena'.

  1. día() – Este método se utiliza para extraer la fecha de la “Fecha”. Devuelve el entero que especifica la fecha.
  2. mes() – Este método se utiliza para extraer el mes de la “Fecha”. Devuelve el entero que especifica el número del mes. Podemos referirnos a enero como 1, a febrero como 2…. diciembre como 12.
  3. año() – Este método se utiliza para extraer el año de la “Fecha”. Devuelve el año en un formato de cuatro dígitos.

Sintaxis:

entrada_fecha.año() + '-' + entrada_fecha.mes() + '-' + entrada_fecha.día()

Ejemplo:

Convierta de nuevo la 'Fecha' a 'Cadena' en el formato 'YYYY-M-D'.

// Declarar año, mes y día uno por uno

Cadena Año = '2023';

Cadena Mes = '4';

Cadena Día = '5';

// Concatenar todos ellos en una cadena

String string_type = Año + '-' + Mes + '-' + Día;

// Convertir cadena-Fecha a Fecha

Fecha convertida_fecha = fecha.valorDe(string_type);

system.debug(converted_date);

// Convertir fecha a cadena

system.debug(fecha_convertida.año() + '-' + fecha_convertida.mes() + '-' + fecha_convertida.día());

Producción:

Ejemplos prácticos:

Veamos cómo actualizar la 'Fecha', como agregar días, años y meses a la fecha existente en los objetos de Salesforce. Los tres métodos toman el entero “n” como argumento.

1. añadirDías()

Para agregar días a la fecha existente, Apex admite el método addDays() que está disponible en la clase 'Fecha'.

2. agregarMeses()

Para agregar meses a la fecha existente, Apex admite el método addMonths() que está disponible en la clase 'Fecha'.

3. añadirAños()

Para agregar años a la fecha existente, Apex admite el método addYears() que está disponible en la clase 'Fecha'.

Sintaxis:

Veamos la sintaxis de estos tres métodos. Aquí, 'n' especifica el valor entero.

  • input_Date.addDays(n)
  • input_Date.addMonths(n)
  • input_Date.addYears(n)

Antes de ir al ejemplo, considere lo siguiente:

  1. Inicie sesión en Salesforce y vaya al 'Lanzador de aplicaciones' y busque 'Campaña' en la pestaña. Aquí, insertamos el 'Nombre de la campaña' y la 'Fecha de finalización'.

  1. Elija 'Campañas' y haga clic en 'Nuevo'.

  1. Aparece una ventana emergente para insertar los datos en la campaña. Agregue 'Publicaciones de sugerencias de Linux' debajo del 'Nombre de la campaña' y establezca la 'Fecha de finalización' como 4/5/2023. Luego, haga clic en 'Guardar'.

Estamos listos con el registro. (Tipo – Conferencia y Estado – Planificado vendrá automáticamente. Déjalo). Abramos la ventana anónima en la consola del desarrollador.

Ejemplo 1:

Usemos el método addDays() para agregar 10 días a la 'Fecha de finalización' existente en el objeto 'Campaña'.

  1. Para hacer esto, primero debemos usar la consulta SOQL para obtener el registro del objeto 'Campaña' y almacenar este registro en un objeto 'Lista'.
  2. A continuación, usamos el ciclo 'for' para iterar la lista y usamos el método addDays() para agregar 10 días a la 'Fecha de finalización'.
  3. Finalmente, usamos la instrucción 'actualizar DML' para actualizar la 'Fecha de finalización' en el objeto 'Campaña'.
// Devuelve el nombre y la fecha de finalización de la campaña mediante SOQL

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

// Agregue 10 días a EndDate usando el método addDays()

for(Campaña i: consulta1){

i.EndDate = i.EndDate.addDays(10);

}

// Usar actualizar DML para actualizar EndDate

actualizar consulta1;

system.debug(consulta1);

Producción:

La 'Fecha de finalización' anterior es el 5 de abril. Después de agregarle 10 días, la 'Fecha de finalización' ahora es el 15 de abril.

También podemos consultar en la pestaña “Campaña”. Retroceda y actualice la página. Puede ver que la 'Fecha de finalización' se actualiza.

Ejemplo 2:

Usemos el método addMonths() para agregar 3 meses a la 'Fecha de finalización' existente.

// Devuelve el nombre y la fecha de finalización de la campaña mediante SOQL

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

system.debug('Real: '+consulta1);

// Agregue 3 meses a EndDate usando el método addMonths()

for(Campaña i: consulta1){

i.EndDate = i.EndDate.addMonths(3);

}

// Usar actualizar DML para actualizar EndDate

actualizar consulta1;

system.debug('Actualizado: '+consulta1);

Producción:

El mes anterior en la 'Fecha de finalización' es abril. Después de agregar 3 meses, ahora es julio.

Ejemplo 3:

Usemos el método addYears() para agregar 3 años a la 'Fecha de finalización' existente.

// Devuelve el nombre y la fecha de finalización de la campaña mediante SOQL

List query1 = [SELECT Name,EndDate FROM Campaign WHERE Name = 'Linux Hint Posts'];

system.debug('Real: '+consulta1);

// Agregue 3 años a EndDate usando el método addYears()

for(Campaña i: consulta1){

i.EndDate = i.EndDate.addYears(3);

}

// Usar actualizar DML para actualizar EndDate

actualizar consulta1;

system.debug('Actualizado: '+consulta1);

Producción:

Después de agregar 3 años a la 'Fecha de finalización', el año actualizado es 2026.

Conclusión

Formatear la fecha en Salesforce Apex es bastante simple. Como parte de este tutorial, aprendimos cómo convertir la 'Fecha' del formato 'Cadena' a 'Fecha' mediante el método valueOf() que está disponible en la clase 'Fecha' de Apex. Si desea volver a convertir la fecha en una cadena, usamos el formato () y los atributos de fecha como día (), mes () y año (). Finalmente, finalizamos esta guía discutiendo la operación DML en el objeto 'Campaña' de Salesforce para actualizar la 'Fecha de finalización' usando los métodos addDays(), addMonths() y addYears() con ejemplos separados.