Common default datetime formats.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@31439 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Włodzimierz Skiba 2005-01-17 21:29:23 +00:00
parent 9b877d1846
commit 1aaf88d220
6 changed files with 42 additions and 34 deletions

View File

@ -121,7 +121,7 @@ parameters is one of the following values:
\end{verbatim}
Date calculations often depend on the country and wxDateTime allows to set the
country whose conventions should be used using
country whose conventions should be used using
\helpref{SetCountry}{wxdatetimesetcountry}. It takes one of the following
values as parameter:
@ -148,7 +148,7 @@ values as parameter:
Different parts of the world use different conventions for the week start.
In some countries, the week starts on Sunday, while in others -- on Monday.
The ISO standard doesn't address this issue, so we support both conventions in
the functions whose result depends on it (\helpref{GetWeekOfYear}{wxdatetimegetweekofyear} and
the functions whose result depends on it (\helpref{GetWeekOfYear}{wxdatetimegetweekofyear} and
\helpref{GetWeekOfMonth}{wxdatetimegetweekofmonth}).
The desired behvaiour may be specified by giving one of the following
@ -192,7 +192,7 @@ Please note that although several function accept an extra {\it Calendar}
parameter, it is currently ignored as only the Gregorian calendar is
supported. Future versions will support other calendars.
\pythonnote{These methods are standalone functions named
\pythonnote{These methods are standalone functions named
{\tt wxDateTime\_<StaticMethodName>} in wxPython.}
\helpref{SetCountry}{wxdatetimesetcountry}\\
@ -253,7 +253,7 @@ values were correct as constructors can not return an error code.
\membersection{Accessors}\label{datetimeaccessors}
Here are the trivial accessors. Other functions, which might have to perform
some more complicated calculations to find the answer are under the
some more complicated calculations to find the answer are under the
\helpref{Calendar calculations}{datetimecalculations} section.
\helpref{IsValid}{wxdatetimeisvalid}\\
@ -318,32 +318,32 @@ defined to be equivalent to the second forms of these functions.
These functions convert wxDateTime objects to and from text. The
conversions to text are mostly trivial: you can either do it using the default
date and time representations for the current locale (
\helpref{FormatDate}{wxdatetimeformatdate} and
date and time representations for the current locale (
\helpref{FormatDate}{wxdatetimeformatdate} and
\helpref{FormatTime}{wxdatetimeformattime}), using the international standard
representation defined by ISO 8601 (
\helpref{FormatISODate}{wxdatetimeformatisodate} and
representation defined by ISO 8601 (
\helpref{FormatISODate}{wxdatetimeformatisodate} and
\helpref{FormatISOTime}{wxdatetimeformatisotime}) or by specifying any format
at all and using \helpref{Format}{wxdatetimeformat} directly.
The conversions from text are more interesting, as there are much more
possibilities to care about. The simplest cases can be taken care of with
possibilities to care about. The simplest cases can be taken care of with
\helpref{ParseFormat}{wxdatetimeparseformat} which can parse any date in the
given (rigid) format. \helpref{ParseRfc822Date}{wxdatetimeparserfc822date} is
another function for parsing dates in predefined format -- the one of RFC 822
which (still...) defines the format of email messages on the Internet. This
format can not be described with {\tt strptime(3)}-like format strings used by
format can not be described with {\tt strptime(3)}-like format strings used by
\helpref{Format}{wxdatetimeformat}, hence the need for a separate function.
But the most interesting functions are
\helpref{ParseTime}{wxdatetimeparsetime},
\helpref{ParseDate}{wxdatetimeparsedate} and
But the most interesting functions are
\helpref{ParseTime}{wxdatetimeparsetime},
\helpref{ParseDate}{wxdatetimeparsedate} and
\helpref{ParseDateTime}{wxdatetimeparsedatetime}. They try to parse the date
ans time (or only one of them) in `free' format, i.e. allow them to be
specified in any of possible ways. These functions will usually be used to
parse the (interactive) user input which is not bound to be in any predefined
format. As an example, \helpref{ParseDateTime}{wxdatetimeparsedatetime} can
parse the strings such as {\tt "tomorrow"}, {\tt "March first"} and even
parse the strings such as {\tt "tomorrow"}, {\tt "March first"} and even
{\tt "next Sunday"}.
\helpref{ParseRfc822Date}{wxdatetimeparserfc822date}\\
@ -601,7 +601,7 @@ Example:
printf("Current time in Paris:\t%s\n", now.Format("%c", wxDateTime::CET).c_str());
\end{verbatim}
Note that this function is accurate up to second:
Note that this function is accurate up to second:
\helpref{wxDateTime::UNow}{wxdatetimeunow} should be used for better precision
(but it is less efficient and might not be available on all platforms).
@ -698,7 +698,7 @@ Same as \helpref{Set}{wxdatetimewxdatetimetime}
\membersection{wxDateTime::wxDateTime}\label{wxdatetimewxdatetimedate}
\func{wxDateTime\&}{wxDateTime}{\param{wxDateTime\_t }{day}, \param{Month }{month = Inv\_Month}, \param{int}{ Inv\_Year},
\func{wxDateTime\&}{wxDateTime}{\param{wxDateTime\_t }{day}, \param{Month }{month = Inv\_Month}, \param{int}{ Inv\_Year},
\param{wxDateTime\_t }{hour = 0}, \param{wxDateTime\_t }{minute = 0}, \param{wxDateTime\_t }{second = 0}, \param{wxDateTime\_t }{millisec = 0}}
Same as \helpref{Set}{wxdatetimesetdate}
@ -935,7 +935,7 @@ more than half of its days in this year. Accordingly, the week number will
always be in $1\ldots53$ range ($52$ for non leap years).
The function depends on the \helpref{week start}{wxdatetime} convention
specified by the {\it flags} argument but its results for
specified by the {\it flags} argument but its results for
\texttt{Sunday\_First} are not well-defined as the ISO definition quoted above
applies to the weeks starting on Monday only.
@ -973,8 +973,8 @@ calculations make sense for it).
\func{wxDateTime\&}{Set}{\param{unsigned long }{ddt}}
Sets the date from the date and time in
\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html}
Sets the date from the date and time in
\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html}
format.
@ -982,8 +982,8 @@ format.
\constfunc{unsigned long}{GetAsDOS}{\void}
Returns the date and time in
\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html}
Returns the date and time in
\urlref{DOS}{http://developer.novell.com/ndk/doc/smscomp/index.html?page=/ndk/doc/smscomp/sms\_docs/data/hc2vlu5i.html}
format.
%%%%%%%%%%%%%%%%%%%%%%%%%%% comparison %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
@ -1147,7 +1147,7 @@ free ways, you should use \helpref{ParseDateTime}{wxdatetimeparsedatetime} or
\membersection{wxDateTime::ParseFormat}\label{wxdatetimeparseformat}
\func{const wxChar *}{ParseFormat}{\param{const wxChar *}{date}, \param{const wxChar *}{format = "\%c"}, \param{const wxDateTime\& }{dateDef = wxDefaultDateTime}}
\func{const wxChar *}{ParseFormat}{\param{const wxChar *}{date}, \param{const wxChar *}{format = wxDefaultDateTimeFormat}, \param{const wxDateTime\& }{dateDef = wxDefaultDateTime}}
This function parses the string {\it date} according to the given
{\it format}. The system {\tt strptime(3)} function is used whenever available,
@ -1190,7 +1190,7 @@ implemented, so always returns NULL.
\func{const wxChar *}{ParseDate}{\param{const wxChar *}{date}}
This function is like \helpref{ParseDateTime}{wxdatetimeparsedatetime}, but it
only allows the date to be specified. It is thus less flexible then
only allows the date to be specified. It is thus less flexible then
\helpref{ParseDateTime}{wxdatetimeparsedatetime}, but also has less chances to
misinterpret the user input.
@ -1211,7 +1211,7 @@ the character which stopped the scan.
\membersection{wxDateTime::Format}\label{wxdatetimeformat}
\constfunc{wxString }{Format}{\param{const wxChar *}{format = "\%c"}, \param{const TimeZone\& }{tz = Local}}
\constfunc{wxString }{Format}{\param{const wxChar *}{format = wxDefaultDateTimeFormat}, \param{const TimeZone\& }{tz = Local}}
This function does the same as the standard ANSI C {\tt strftime(3)} function.
Please see its description for the meaning of {\it format} parameter.
@ -1273,7 +1273,7 @@ Returns the reference to the modified object itself.
\constfunc{wxDateTime}{GetWeekDayInSameWeek}{\param{WeekDay }{weekday}, \param{WeekFlags}{flags = {\tt Monday\_First}}}
Returns the copy of this object to which
Returns the copy of this object to which
\helpref{SetToWeekDayInSameWeek}{wxdatetimesettoweekdayinsameweek} was
applied.
@ -1367,7 +1367,7 @@ given \arg{year} . The number should be in range $1\ldots53$.
Note that the returned date may be in a different year than the one passed to
this function because both the week $1$ and week $52$ or $53$ (for leap years)
contain days from different years. See
contain days from different years. See
\helpref{GetWeekOfYear}{wxdatetimegetweekofyear} for the explanation of how the
year weeks are counted.

View File

@ -115,7 +115,7 @@ Returns the timespan for one day.
\membersection{wxTimeSpan::Format}\label{wxtimespanformat}
\func{wxString}{Format}{\param{const wxChar * }{format = "\%H:\%M:\%S"}}
\func{wxString}{Format}{\param{const wxChar * }{format = wxDefaultTimeSpanFormat}}
Returns the string containing the formatted representation of the time span.
The following format specifiers are allowed after \%:

View File

@ -110,7 +110,10 @@ class WXDLLIMPEXP_BASE wxDateSpan;
// wxInvalidDateTime)
class WXDLLIMPEXP_BASE wxDateTime;
extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxDefaultDateTimeFormat;
extern WXDLLIMPEXP_DATA_BASE(const wxChar*) wxDefaultTimeSpanFormat;
extern WXDLLIMPEXP_DATA_BASE(const wxDateTime) wxDefaultDateTime;
#define wxInvalidDateTime wxDefaultDateTime
// ----------------------------------------------------------------------------
@ -935,7 +938,7 @@ public:
// default, they will not change if they had valid values or will
// default to Today() otherwise)
const wxChar *ParseFormat(const wxChar *date,
const wxChar *format = _T("%c"),
const wxChar *format = wxDefaultDateTimeFormat,
const wxDateTime& dateDef = wxDefaultDateTime);
// parse a string containing the date/time in "free" format, this
// function will try to make an educated guess at the string contents
@ -950,7 +953,7 @@ public:
// argument corresponds to the preferred date and time representation
// for the current locale) and returns the string containing the
// resulting text representation
wxString Format(const wxChar *format = _T("%c"),
wxString Format(const wxChar *format = wxDefaultDateTimeFormat,
const TimeZone& tz = Local) const;
// preferred date representation for the current locale
wxString FormatDate() const { return Format(_T("%x")); }
@ -1138,7 +1141,7 @@ public:
// resulting text representation. Notice that only some of format
// specifiers valid for wxDateTime are valid for wxTimeSpan: hours,
// minutes and seconds make sense, but not "PM/AM" string for example.
wxString Format(const wxChar *format = _T("%H:%M:%S")) const;
wxString Format(const wxChar *format = wxDefaultTimeSpanFormat) const;
// implementation
// ------------------------------------------------------------------------

View File

@ -32,8 +32,8 @@
class WXDLLIMPEXP_ADV wxGridCellDateTimeRenderer : public wxGridCellStringRenderer
{
public:
wxGridCellDateTimeRenderer(wxString outformat = _T("%c"),
wxString informat = _T("%c"));
wxGridCellDateTimeRenderer(wxString outformat = wxDefaultDateTimeFormat,
wxString informat = wxDefaultDateTimeFormat);
// draw the string right aligned
virtual void Draw(wxGrid& grid,

View File

@ -233,6 +233,9 @@ static const wxDateTime::wxDateTime_t gs_cumulatedDays[2][MONTHS_IN_YEAR] =
// global data
// ----------------------------------------------------------------------------
const wxChar * wxDefaultDateTimeFormat = wxT("%c");
const wxChar * wxDefaultTimeSpanFormat = wxT("%H:%M:%S");
// in the fine tradition of ANSI C we use our equivalent of (time_t)-1 to
// indicate an invalid wxDateTime object
const wxDateTime wxDefaultDateTime;

View File

@ -73,6 +73,8 @@
#include <wtime.h>
#endif
#include "wx/datetime.h"
// the suffix we add to the button to show that the dialog can be expanded
#define EXPAND_SUFFIX _T(" >>")
@ -866,7 +868,7 @@ void wxLogDialog::CreateDetailsControls()
if ( !fmt )
{
// default format
fmt = _T("%c");
fmt = wxDefaultDateTimeFormat;
}
size_t count = m_messages.GetCount();
@ -952,7 +954,7 @@ void wxLogDialog::OnSave(wxCommandEvent& WXUNUSED(event))
if ( !fmt )
{
// default format
fmt = _T("%c");
fmt = wxDefaultDateTimeFormat;
}
size_t count = m_messages.GetCount();