dateformat - java datetime



Come controllo la formattazione delle date in un URL con Play? (2)

ci sono diversi modi per influenzare il formato dei parametri della data in URL.

  1. play.data.binding.As Annotation

    da Play 1.1 è possibile influenzare il percorso e l'associazione dei dati con questa annotazione. Aggiungi semplicemente un'annotazione @As come segue al tuo parametro data:

    public static void submit(@As("dd/MM/yyyy")Date myDate)
    {
        Logger.info("date %s", new SimpleDateFormat("dd-MM-yyyy").format(myDate));  
    }

    ulteriori informazioni sull'annotazione possono essere trovate qui http://www.playframework.org/documentation/1.1/releasenotes-1.1

  2. application.conf
    dare un'occhiata alla sezione i18n / DateFormat

https://ffff65535.com

Ho un'applicazione Play che dovrebbe elencare gli acquisti entro un determinato intervallo di date. Se l'utente non fornisce alcun intervallo di date, dovrebbe visualizzare in modo predefinito gli acquisti nell'ultimo anno. Questo è fatto con questi due metodi nel mio controller:

public static void show(String id) {
    Date today = new Date();
    Calendar calendar = Calendar.getInstance();
    calendar.setTime(today);
    calendar.add(Calendar.YEAR, -1);
    Date oneYearAgo = calendar.getTime();

    showWithInterval(id, oneYearAgo, today);
}

public static void showWithInterval(String id, Date fromDate, Date toDate) {
    List<Purchase> purchases= Purchase.find(id, fromDate, toDate);

    render(purchases, fromDate, toDate);
}

Tuttavia, questo produce un URL simile a questo: http://localhost:9000/purchases/showwithinterval/10076430719?fromDate=ISO8601:2010-01-17T19:41:20%2B0100&toDate=ISO8601:2011-01-17T19:41:20%2B0100

Questo non rispetta il formato data che ho specificato con la proprietà date.format in application.conf . Questo formato non è semplicemente utilizzabile, poiché voglio essere in grado di stampare le date (usando ${params.fromDate} ) e lasciare che i miei utenti li modifichino per mostrare altri intervalli. Non posso formattarli nella vista, dal momento che sono stringhe.

Qualcuno sa come risolvere questo problema?

Modifica: corretto un errore di battitura


Aggiungi da data e data al tuo metodo di rendering:

render(purchases,fromDate,toDate);

e formattali:

${fromDate.format()}

Play formatterà la data con la configurazione del formato in application.conf





playframework