The code that formats the time is here:
>>>>>>
String startTimeString =
org.apache.manifoldcf.ui.util.Formatter.formatTime(Converter.asLong(row.getValue("starttime")));
<<<<<<
This explicitly uses UTC as the timezone:
>>>>>>
/** Format a long as an understandable date.
*@param time is the long.
*@return the date, as a human-readable string. This date will be in
local time.
*/
public static String formatTime(long time)
{
Calendar c = new GregorianCalendar(TimeZone.getTimeZone("UTC"),
Locale.ROOT);
c.setTimeInMillis(time);
// We want to format this string in a compact way:
// mm-dd-yyyy hh:mm:ss.mmm
StringBuilder returnString = new StringBuilder();
writechars(returnString,c.get(Calendar.MONTH)+1,2);
returnString.append("-");
writechars(returnString,c.get(Calendar.DAY_OF_MONTH),2);
returnString.append("-");
writechars(returnString,c.get(Calendar.YEAR),4);
returnString.append(" ");
writechars(returnString,c.get(Calendar.HOUR_OF_DAY),2);
returnString.append(":");
writechars(returnString,c.get(Calendar.MINUTE),2);
returnString.append(":");
writechars(returnString,c.get(Calendar.SECOND),2);
returnString.append(".");
writechars(returnString,c.get(Calendar.MILLISECOND),3);
return returnString.toString();
}
<<<<<<
This was last changed:
>>>>>>
1756230 kwright Calendar c = new
GregorianCalendar(TimeZone.getTimeZone("UTC"), Locale.ROOT);
<<<<<<
The reason for the change:
>>>>>>
------------------------------------------------------------------------
r1756230 | kwright | 2016-08-12 18:20:00 -0400 (Fri, 12 Aug 2016) | 1 line
Fix for CONNECTORS-1332. Committed on behalf of Furkan KAMACI.
<<<<<<
CONNECTORS-1332 is about calling forbidden APIS:
>>>>>>
We should avoid forbidden calls
<https://github.com/policeman-tools/forbidden-apis/wiki> and check for it
in the ant build.
<<<<<<
The actual change was:
>>>>>>
C:\wip\mcf\trunk\framework\ui-core\src\main\java\org\apache\manifoldcf\ui\util>svn
diff -c 1756230
Index: Formatter.java
===================================================================
--- Formatter.java (revision 1756229)
+++ Formatter.java (revision 1756230)
@@ -32,7 +32,7 @@
*/
public static String formatTime(long time)
{
- Calendar c = new GregorianCalendar();
+ Calendar c = new GregorianCalendar(TimeZone.getTimeZone("UTC"),
Locale.ROOT);
c.setTimeInMillis(time);
// We want to format this string in a compact way:
// mm-dd-yyyy hh:mm:ss.mmm
<<<<<<
As you see, formerly the timezone was local time. The change required an
explicit timezone in order to pass the forbidden APIs test, and UTC was
used.
I am happy to try to change this since it's been this way only since 2016,
if I can find a way that will not break forbiddenAPIs.
Karl
On Fri, Aug 10, 2018 at 2:42 AM Bisonti Mario <[email protected]>
wrote:
> Hallo Karl.
>
> My server timezone is set as the browser timezone (europe/Rome) as you can
> see, but the list is two hour less my time zone.
>
> So, it seems that the list uses the “universal time” instead of time zone
>
>
>
> administrator@sengvivv01:~$ timedatectl
>
> Local time: Fri 2018-08-10 08:39:28 CEST
>
> Universal time: Fri 2018-08-10 06:39:28 UTC
>
> RTC time: Fri 2018-08-10 06:39:28
>
> Time zone: Europe/Rome (CEST, +0200)
>
> System clock synchronized: yes
>
> systemd-timesyncd.service active: yes
>
> RTC in local TZ: no
>
>
>
>
>
> What could I do?
>
> Thanks a lot
>
>
>
>
>
>
>
> *Da:* Karl Wright <[email protected]>
> *Inviato:* giovedì 9 agosto 2018 21:36
> *A:* [email protected]
> *Oggetto:* Re: Different time in Simple History Report
>
>
>
> Hi Mario.
>
> The pulldown allows you to select times based on the current (browser)
> time zone.
>
> The display is in *server* timezone. That accounts for the difference.
>
>
>
> Karl
>
>
>
>
>
> On Thu, Aug 9, 2018 at 10:23 AM Bisonti Mario <[email protected]>
> wrote:
>
> Hallo
>
> I see a difference from the start time in “Simple History Report”
>
>
>
> It seems late of 2 hours.
>
>
>
> Have I to set timezone for this report?
>
>
>
> Thanks a lot
>
> See the attachment
>
>
>
>
>
>