- 

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.

Demo

Raw Temporal#toString() value of #{startup}: 2024-11-24T10:11:43.963196-06:00[America/Chicago] - this should represent same format as java.time.ZonedDateTime

Formatted using of:formatDate() function: 2024-11-24 10:11:43


As java.time.Instant: 2024-11-24T16:11:43.963196Z - this should represent UTC

Formatted using of:formatDate() function: 2024-11-24 16:11:43


As java.time.ZonedDateTime: 2024-11-24T10:11:43.963196-06:00[America/Chicago]

Formatted using of:formatDate() function: 2024-11-24 10:11:43


As epoch time: 1732464703963

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