MarcusDau
Occasional Collector

Datenquelle (Datum abfragen und formatieren)

Jump to solution

Hallo!

Ich habe wieder eine Frage zu Datenquellen. Irgendwie sehe ich den Wald vor lauter Bäumen nicht.

Ausgangslage: Datenquelle in der u.a. eine Spalte angelegt ist, die ein Datum speichert.

Ich frage die Daten mit folgendem Code ab:

<CMS_HEADER>
    <CMS_FUNCTION name="contentSelect" resultname="fr_win_jahr">                                                                                                          
        <CMS_PARAM name="schema" value="wasistneu"/>                                                                                                              
        <CMS_VALUE_PARAM name='von' value='#startdate.set("day_of_month",1).set("month",0).set("year",st_jahr).set("hour",0).set("minute",0).set("second",0).getTime()' /> 
        <CMS_VALUE_PARAM name='bis' value='#startdate.set("day_of_month",1).set("month",0).set("year",st_jahr+1).set("hour",0).set("minute",0).set("second",0).getTime()' />
        <QUERY entityType="eintrag">
            <ORDERCRITERIA attribute="datum" descending="1" />                                                                                                                           
            <FILTERPARAM parameter="bis" datatype="java.util.Date" value="0"/>
            <FILTERPARAM parameter="von" datatype="java.util.Date" value="0"/>                                                                                      
            <AND>                                                                                                                                             
                <GTE attribute="Datum" parameter="von" />                                                                                                       
                <LT attribute="Datum" parameter="bis" />                                                                                                       
            </AND>                                                                                                                                            
        </QUERY>                                                                                                                                                  
    </CMS_FUNCTION>
</CMS_HEADER>
<%@page import="java.util.Calendar"%>
<%@page import="java.util.GregorianCalendar"%>
<%@page import="java.text.SimpleDateFormat"%>
<%
    String alterTag = "";
    String neuerTag;
    Calendar neuerTagCal = new GregorianCalendar();
    SimpleDateFormat sdfWin = new SimpleDateFormat("dd. MMMM yyyy, EEEE");
%>
$CMS_FOR(win_eintrag, fr_win_jahr)$
<%
    neuerTag = "$CMS_VALUE(win_eintrag.datum)$";
    neuerTagCal.setTimeInMillis($CMS_VALUE(win_eintrag.datum.getTimeInMillis()/1000)$);
    if (!alterTag.equals(neuerTag))
    {
        alterTag = neuerTag;
%>
        <h2><%= sdfWin.format(neuerTagCal.getTime()) %></h2>
<%
    }
%>
        <li>$CMS_VALUE(win_eintrag.eintragstext)$</li>
    $CMS_END_FOR$
</ul>

Lassen wir mal den noch nicht sauberen HTML-Code außer acht.

Ich habe das Problem, dass ich das Datum-Feld entsprechend mit dem sdfWin-Format formatieren und die Daten gruppiert nach Tag ausgeben möchte. Die Gruppierung bekomme ich über die Hilfsvariable neuerTag hin, sicherlich nicht perfekt gelöst, aber es funktioniert.

Aber wie formatiere ich das Datum-Feld? Habe versucht das Teil in ein Calendar-Format zu wandeln und dann entsprechend zu formatieren. Klappt aber nicht, da ich mit getTimeInMillis() einen Wert auslese, den ich wiederum nicht mit setTimeInMillis() setzen darf.

Wie kann ich dieses Datum vernünftig formatieren? Und gibt es (mit Sicherheit!) Verbesserungen für den Code unten?

Danke im Voraus!

0 Kudos
1 Solution

Accepted Solutions
MarcusDau
Occasional Collector

Es war zu einfach, wie erwartet:

$CMS_VALUE(win_eintrag.datum.format("dd. MMMM yyyy, EEEE"))$

View solution in original post

0 Kudos
1 Reply
MarcusDau
Occasional Collector

Es war zu einfach, wie erwartet:

$CMS_VALUE(win_eintrag.datum.format("dd. MMMM yyyy, EEEE"))$

0 Kudos