Saltar al contenido

Cómo formatear la fecha en ‘yyyy-MM-dd’ usando Apex

Hemos estado indagado en todo el mundo on line para traerte la solución para tu problema, si continúas con alguna inquietud déjanos tu pregunta y te responderemos con mucho gusto.

Solución:

No hiciste lo mismo en ambos ejemplos:

String foo(Date input)
 // your first example
    return DateTime.newInstance(
        input.year(), input.month(), input.day()
    ).format('yyyy-MM-dd');

String bar(Date input)
 // your second example
    Datetime output = input;
    // Type Coercion  ^^^^^
    return output.format('yyyy-MM-dd');

String baz(Date input)
 // another approach
    return DateTime.newInstance(
        input, Time.newInstance(0,0,0,0)
    ).format('yyyy-MM-dd');


system.debug(foo(Date.today()));
system.debug(bar(Date.today()));
system.debug(baz(Date.today()));

En tu primer ejemplo, usas foopero en tu segundo, usas bar. Que haces bar se llama Type Coercion donde asignas un Date a un Datetime. Eso le da un Time en vez de (0,0,0,0)pero un Time Zone de GMT. Entonces también podrías arreglar bar mediante el uso formatGmt:

String qux(Date input)
 // your second example rewritten
    Datetime output = input;
    return output.formatGmt('yyyy-MM-dd');
    //                  ^^^


También podría pensar en su barra original como equivalente a un ligero cambio en baz:

String quux(Date input)

    Datetime output = Datetime.newInstanceGmt(input, Time.newInstance(0,0,0,0));
    // now output is the same as it was in `bar`
    return output.format('yyyy-MM-dd');

Tienes el Datetime en el GMT Zona horaria, por lo que debe usar formatGmt:

String garply(Date input)

    Datetime output = Datetime.newInstanceGmt(input, Time.newInstance(0,0,0,0));
    // now output is the same as it was in `bar`
    return output.formatGmt('yyyy-MM-dd');
    //                  ^^^


* ¿Qué hay después de Baz?

Para dar formato a un objeto Fecha a AAAA-MM-DD, solo necesita una línea:

String.valueOf(dateObject);

Recuerda algo, que tienes la capacidad de parafrasear tu experiencia si te ayudó.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *