Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
CONVCAL(1)			 User's	Manual			    CONVCAL(1)

       convcal - convert dates to different formats

       convcal [OPTIONS] [DATE]

       convcal	is part	of the grace software package, an application for two-
       dimensional data	visualization. convcal converts	dates from and to var-
       ious  formats.  The following date formats are supported	(hour, minutes
       and seconds are always optional):

       iso    1999-12-31T23:59:59.999

	      31/12/1999 23:59:59.999 or 31/12/99 23:59:59.999

       us     12/31/1999 23:59:59.999 or 12/31/99 23:59:59.999

       days   123456.789


       The formats are tried in	the following order : users's choice, iso, eu-
       ropean  and  us (there is no ambiguity between calendar formats and nu-
       merical formats and therefore no	order is specified for them).

       convcal reads the dates either on the command line or in	 the  standard
       input if	the command line contains no date.

       The  user's choice for the input	format put one format before the other
       ones in the trial list, this is mainly  useful  for  US	citizen	 which
       would  certainly	 prefer	to have	US format checked before european for-
       mat. The	default	user's choice (nohint) does nothing so	the  following
       formats of the list are checked.

       The separators between various fields can be any	characters in the set:
       " :/.-T". One or	more spaces act	as one separator, other	characters can
       not be repeated,	the T separator	is allowed only	between	date and time,
       mainly for iso8601. So the string "1999-12 31:23-59"  is	 allowed  (but
       not recommended).  The '-' character is used both as a separator	(it is
       traditionally used in iso8601 format) and as the	unary minus (for dates
       in the far past or for numerical	dates).	When the year is between 0 and
       99 and is written with two or less digits, it is	mapped to the era  be-
       ginning at wrap year and	ending at wrap year + 99 as follows :

       [wy ; 99] -> [ wrap_year	; 100*(1 + wrap_year/100) - 1 ]

       [00 ; wy-1] -> [	100*(1 + wrap_year/100)	; wrap_year + 99]

       so  for	example	 if the	wrap year is set to 1950 (which	is the default
       value), then the	mapping	is :

       range [00 ; 49] is mapped to [2000 ; 2049]

       range [50 ; 99] is mapped to [1950 ; 1999]

       this is reasonably Y2K compliant	and is consistent  with	 current  use.
       Specifying  year	1 is still possible using more than two	digits as fol-
       lows : "0001-03-04" is unambiguously March the 4th, year	1, even	if the
       user's choice is	us format. However using two digits only is not	recom-
       mended (we introduce a 2050 bug here so this feature should be  removed
       at some point in	the future ;-)

       Numerical dates (days and seconds formats) can be specified using inte-
       ger, real or exponential	formats	(the 'd' and 'D' exponant markers from
       fortran	are  supported in addition to 'e' and 'E').  They are computed
       according to a customizable reference date.  The	default	value is given
       by  the REFDATE constant	in the source file.  You can change this value
       as you want before compiling, and you can change	it at will  using  the
       -r  command  line  option. The default value in the distributed file is
       "-4713-01-01T12:00:00", it is a classical  reference  for  astronomical
       events  (note  that the '-' is used here	both as	a unary	minus and as a

       The program can be used either for Denys's and gregorian	calendars.  It
       does  not  take into account leap seconds : you can think it works only
       in International	Atomic Time (TAI) and not in Coordinated Unified  Time
       (UTC)  ...   Inexistant	dates are detected, they include year 0, dates
       between 1582-10-05 and 1582-10-14, February 29th	 of  non  leap	years,
       months below 1 or above 12, ...

       A summary of the	options	supported by convcal is	included below.

       -h     prints the help message on stderr	and exits successfully

       -i format
	      set  user's  choice for input format, supported formats are iso,
	      european,	us, days, seconds and nohint.  At  the	beginning  the
	      input format is nohint, which means the program try to guess the
	      format by	itself,	if the user's choice does not allow  to	 parse
	      the date,	other formats are tried

       -o format
	      force  output  format,  supported	formats	are iso, european, us,
	      days, seconds and	nohint.	 At the	beginning, the	output	format
	      is  nohint,  which  means	the program uses days format for dates
	      read in any calendar format and uses iso8601 for dates  read  in
	      numerical	format

       -r date
	      set  reference  date  (the  date is read using the current input
	      format) at the beginning the reference is	set according  to  the
	      REFDATE  constant	 in the	code, which is -4713-01-01T12:00:00 in
	      the distributed file.

       -w year
	      set the wrap year	to year


       Luc Maisonobe

       This man-page was written by Jan	Schaumann <> as
       part  of	 "The  Missing Man Pages Project".  Please see	for details.

grace				August 11, 2001			    CONVCAL(1)


Want to link to this manual page? Use this URL:

home | help