Converting date fields

Suppose you had input records that looked like this:
03212009 Sacramento
05172008 Los Angeles
12302008 Morgan Hill
08132009 Palo Alto
The first field is a gregorian date in 'mmddccyy' form, but you'd actually like to reformat it into a julian date in 'ccyy/ddd' form. You can use the following statements to convert the date field to the form you want:
  OUTREC BUILD=(1,8,Y4W,TOJUL=Y4T(/),X,10,15)
The results produced for this OUTREC statement are:
2009/080 Sacramento    
2008/138 Los Angeles   
2008/365 Morgan Hill   
2009/225 Palo Alto     
Y4W and Y4T are two of DFSORT's 4-digit year date field formats. Y4W indicates a date value with the year (ccyy) last such as 'mmddccyy' or 'dddccyy' whereas Y4T indicates a date value with the year first such as 'ccyymmdd' or 'ccyyddd'. TOJUL is one of the conversion keywords that can be used with date fields. You can use any of the following after p,m,Y4x or p,m,Y2x to convert a CH, ZD or PD 4-digit or 2-digit year date in one form to a corresponding CH, ZD or PD 4-digit or 2-digit year date in another form or to a corresponding day of the week:
  • TOJUL=Yaa - converts to a julian date without a separator (for example, P'2009007').
  • TOJUL=Yaa(s) - converts to a julian date with a separator (for example, C'325-2008').
  • TOGREG=Yaa - converts to a gregorian date without separators (for example, Z'091121').
  • TOGREG=Yaa(s) - converts to a gregorian date with separators (for example, C'2009.09.21').
  • WEEKDAY=CHAR3 - converts to a 3 character day of the week (for example, C'WED' for Wednesday).
  • WEEKDAY=CHAR9 - converts to a 9 character day of the week (for example, C'THURSDAY ' for Thursday).
  • WEEKDAY=DIGIT1 - converts to a 1 digit indicator for the day of the week (for example, C'2' for Monday).
  • WEEKNUM=USA - converts to an integer in the range of 1 to 54 that represents the week of the year.
  • WEEKNUM=ISO - converts to an integer in the range of 1 to 53 that represents the week of the year.
  • Age=YMD – converts to a 8 byte integer which has duration in years (0-9999), months (00-12), and days (00-31).
  • Age=YM – converts to a 6 byte integer which has duration in years (0-9999), months (00-12).
  • Age=YD – converts to a 7 integer which has duration in years (0-9999), days (00-366).

For complete details on converting from one type of date field to another, see z/OS DFSORT Application Programming Guide.