I have tried here to change to juce_Time docs to be more specific about the timezones of inputs and outputs. Also I believe the "-" makes a list on Doxygen.
diff --git a/modules/juce_core/time/juce_Time.h b/modules/juce_core/time/juce_Time.h
index a2bdb3a..614b24e 100644
--- a/modules/juce_core/time/juce_Time.h
+++ b/modules/juce_core/time/juce_Time.h
@@ -44,7 +44,7 @@ public:
//==============================================================================
/** Creates a Time object.
- This default constructor creates a time of 1st January 1970, (which is
+ This default constructor creates a time of midnight Jan 1st 1970 UTC, (which is
represented internally as 0ms).
To create a time object representing the current time, use getCurrentTime().
@@ -55,19 +55,16 @@ public:
/** Creates a time based on a number of milliseconds.
- The internal millisecond count is set to 0 (1st January 1970). To create a
- time object set to the current time, use getCurrentTime().
+ To create a time object set to the current time, use getCurrentTime().
@param millisecondsSinceEpoch the number of milliseconds since the unix
- 'epoch' (midnight Jan 1st 1970).
+ 'epoch' (midnight Jan 1st 1970 UTC).
@see getCurrentTime, currentTimeMillis
*/
explicit Time (int64 millisecondsSinceEpoch) noexcept;
/** Creates a time from a set of date components.
- The timezone is assumed to be whatever the system is using as its locale.
-
@param year the year, in 4-digit format, e.g. 2004
@param month the month, in the range 0 to 11
@param day the day of the month, in the range 1 to 31
@@ -75,8 +72,8 @@ public:
@param minutes minutes 0 to 59
@param seconds seconds 0 to 59
@param milliseconds milliseconds 0 to 999
- @param useLocalTime if true, encode using the current machine's local time; if
- false, it will always work in GMT.
+ @param useLocalTime if true, assume input is in machine's local timezone
+ if false, assume input is in UTC.
*/
Time (int year,
int month,
@@ -109,25 +106,25 @@ public:
/** Returns the time as a number of milliseconds.
@returns the number of milliseconds this Time object represents, since
- midnight jan 1st 1970.
+ midnight Jan 1st 1970 UTC.
@see getMilliseconds
*/
int64 toMilliseconds() const noexcept { return millisSinceEpoch; }
- /** Returns the year.
+ /** Returns the year in local timezone.
A 4-digit format is used, e.g. 2004.
*/
int getYear() const noexcept;
- /** Returns the number of the month.
+ /** Returns the number of the month in local timezone.
The value returned is in the range 0 to 11.
@see getMonthName
*/
int getMonth() const noexcept;
- /** Returns the name of the month.
+ /** Returns the name of the month in local timezone.
@param threeLetterVersion if true, it'll be a 3-letter abbreviation, e.g. "Jan"; if false
it'll return the long form, e.g. "January"
@@ -135,29 +132,29 @@ public:
*/
String getMonthName (bool threeLetterVersion) const;
- /** Returns the day of the month.
+ /** Returns the day of the month in local timezone.
The value returned is in the range 1 to 31.
*/
int getDayOfMonth() const noexcept;
- /** Returns the number of the day of the week.
+ /** Returns the number of the day of the week in local timezone.
The value returned is in the range 0 to 6 (0 = sunday, 1 = monday, etc).
*/
int getDayOfWeek() const noexcept;
- /** Returns the number of the day of the year.
+ /** Returns the number of the day of the year in local timezone.
The value returned is in the range 0 to 365.
*/
int getDayOfYear() const noexcept;
- /** Returns the name of the weekday.
+ /** Returns the name of the weekday in local timezone.
@param threeLetterVersion if true, it'll return a 3-letter abbreviation, e.g. "Tue"; if
false, it'll return the full version, e.g. "Tuesday".
*/
String getWeekdayName (bool threeLetterVersion) const;
- /** Returns the number of hours since midnight.
+ /** Returns the number of hours since midnight in local timezone.
This is in 24-hour clock format, in the range 0 to 23.
@@ -165,7 +162,7 @@ public:
*/
int getHours() const noexcept;
- /** Returns true if the time is in the afternoon.
+ /** Returns true if the time is in the afternoon in local timezone.
So it returns true for "PM", false for "AM".
@@ -173,7 +170,7 @@ public:
*/
bool isAfternoon() const noexcept;
- /** Returns the hours in 12-hour clock format.
+ /** Returns the hours in 12-hour clock format in local timezone.
This will return a value 1 to 12 - use isAfternoon() to find out
whether this is in the afternoon or morning.
@@ -182,7 +179,7 @@ public:
*/
int getHoursInAmPmFormat() const noexcept;
- /** Returns the number of minutes, 0 to 59. */
+ /** Returns the number of minutes, 0 to 59 in local timezone. */
int getMinutes() const noexcept;
/** Returns the number of seconds, 0 to 59. */
@@ -204,7 +201,7 @@ public:
String getTimeZone() const noexcept;
//==============================================================================
- /** Quick way of getting a string version of a date and time.
+ /** Quick way of getting a string version of a date and time in local timezone.
For a more powerful way of formatting the date and time, see the formatted() method.
@@ -227,28 +224,28 @@ public:
looking it up, these are the escape codes that strftime uses (other codes might
work on some platforms and not others, but these are the common ones):
- %a is replaced by the locale's abbreviated weekday name.
- %A is replaced by the locale's full weekday name.
- %b is replaced by the locale's abbreviated month name.
- %B is replaced by the locale's full month name.
- %c is replaced by the locale's appropriate date and time representation.
- %d is replaced by the day of the month as a decimal number [01,31].
- %H is replaced by the hour (24-hour clock) as a decimal number [00,23].
- %I is replaced by the hour (12-hour clock) as a decimal number [01,12].
- %j is replaced by the day of the year as a decimal number [001,366].
- %m is replaced by the month as a decimal number [01,12].
- %M is replaced by the minute as a decimal number [00,59].
- %p is replaced by the locale's equivalent of either a.m. or p.m.
- %S is replaced by the second as a decimal number [00,61].
- %U is replaced by the week number of the year (Sunday as the first day of the week) as a decimal number [00,53].
- %w is replaced by the weekday as a decimal number [0,6], with 0 representing Sunday.
- %W is replaced by the week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0.
- %x is replaced by the locale's appropriate date representation.
- %X is replaced by the locale's appropriate time representation.
- %y is replaced by the year without century as a decimal number [00,99].
- %Y is replaced by the year with century as a decimal number.
- %Z is replaced by the timezone name or abbreviation, or by no bytes if no timezone information exists.
- %% is replaced by %.
+ - %a is replaced by the locale's abbreviated weekday name.
+ - %A is replaced by the locale's full weekday name.
+ - %b is replaced by the locale's abbreviated month name.
+ - %B is replaced by the locale's full month name.
+ - %c is replaced by the locale's appropriate date and time representation.
+ - %d is replaced by the day of the month as a decimal number [01,31].
+ - %H is replaced by the hour (24-hour clock) as a decimal number [00,23].
+ - %I is replaced by the hour (12-hour clock) as a decimal number [01,12].
+ - %j is replaced by the day of the year as a decimal number [001,366].
+ - %m is replaced by the month as a decimal number [01,12].
+ - %M is replaced by the minute as a decimal number [00,59].
+ - %p is replaced by the locale's equivalent of either a.m. or p.m.
+ - %S is replaced by the second as a decimal number [00,61].
+ - %U is replaced by the week number of the year (Sunday as the first day of the week) as a decimal number [00,53].
+ - %w is replaced by the weekday as a decimal number [0,6], with 0 representing Sunday.
+ - %W is replaced by the week number of the year (Monday as the first day of the week) as a decimal number [00,53]. All days in a new year preceding the first Monday are considered to be in week 0.
+ - %x is replaced by the locale's appropriate date representation.
+ - %X is replaced by the locale's appropriate time representation.
+ - %y is replaced by the year without century as a decimal number [00,99].
+ - %Y is replaced by the year with century as a decimal number.
+ - %Z is replaced by the timezone name or abbreviation, or by no bytes if no timezone information exists.
+ - %% is replaced by %.
@see toString
*/
@@ -269,7 +266,7 @@ public:
bool setSystemTimeToThisTime() const;
//==============================================================================
- /** Returns the name of a day of the week.
+ /** Returns the name of a day of the week in local timezone.
@param dayNumber the day, 0 to 6 (0 = sunday, 1 = monday, etc)
@param threeLetterVersion if true, it'll return a 3-letter abbreviation, e.g. "Tue"; if
@@ -277,7 +274,7 @@ public:
*/
static String getWeekdayName (int dayNumber, bool threeLetterVersion);
- /** Returns the name of one of the months.
+ /** Returns the name of one of the months in local timezone.
@param monthNumber the month, 0 to 11
@param threeLetterVersion if true, it'll be a 3-letter abbreviation, e.g. "Jan"; if false
@@ -290,7 +287,7 @@ public:
/** Returns the current system time.
- Returns the number of milliseconds since midnight jan 1st 1970.
+ Returns the number of milliseconds since midnight Jan 1st 1970 UTC.
Should be accurate to within a few millisecs, depending on platform,
hardware, etc.
Commit available on GitHub also https://github.com/hm1992/JUCE/commit/769d75044b4ceac5e18f0da2e6302ae77217b8d8
