- 

Available since OmniFaces 3.6

The builtin managed bean #{startup} returns you the java.time.temporal.Temporal instance representing the server's startup time in server's default time zone.

The implementation is provided by org.omnifaces.cdi.config.DateProducer.TemporalDate which is essentially written as a CDI proxy for java.time.ZonedDateTime because it's a final class.

Historical notice: before OmniFaces 3.6, it returned since OmniFaces 1.0 an instance of java.util.Date via a <managed-bean> entry in faces-config.xml.

Demo

Raw Temporal#toString() value of #{startup}: 2025-08-02T11:10:22.225216567-05:00[America/Chicago] - this should represent same format as java.time.ZonedDateTime

Formatted using of:formatDate() function: 2025-08-02 11:10:22


As java.time.Instant: 2025-08-02T16:10:22.225216567Z - this should represent UTC

Formatted using of:formatDate() function: 2025-08-02 16:10:22


As java.time.ZonedDateTime: 2025-08-02T11:10:22.225216567-05:00[America/Chicago]

Formatted using of:formatDate() function: 2025-08-02 11:10:22


As epoch time: 1754151022225

Demo source code
<p>
    Raw <code>Temporal#toString()</code> value of <code>\#{startup}</code>: <strong>#{startup}</strong> - this should represent same format as <code>java.time.ZonedDateTime</code>
</p>
<p>
    Formatted using <code>of:formatDate()</code> function: #{of:formatDate(startup, 'yyyy-MM-dd HH:mm:ss')}
</p>
<hr/>
<p>
    As <code>java.time.Instant</code>: <strong>#{startup.instant}</strong> - this should represent UTC
</p>
<p>
    Formatted using <code>of:formatDate()</code> function: #{of:formatDate(startup.instant, 'yyyy-MM-dd HH:mm:ss')}
</p>
<hr/>
<p>
    As <code>java.time.ZonedDateTime</code>: <strong>#{startup.zonedDateTime}</strong>
</p>
<p>
    Formatted using <code>of:formatDate()</code> function: #{of:formatDate(startup.zonedDateTime, 'yyyy-MM-dd HH:mm:ss')}
</p>
<hr/>
<p>
    As <code>epoch time</code>: <strong>#{startup.time}</strong>
</p>
Documentation & Sources