Skip to Main Content
IBM Power Ideas Portal


This portal is to open public enhancement requests against IBM Power Systems products, including IBM i. To view all of your ideas submitted to IBM, create and manage groups of Ideas, or create an idea explicitly set to be either visible by all (public) or visible only to you and IBM (private), use the IBM Unified Ideas Portal (https://ideas.ibm.com).


Shape the future of IBM!

We invite you to shape the future of IBM, including product roadmaps, by submitting ideas that matter to you the most. Here's how it works:

Search existing ideas

Start by searching and reviewing ideas and requests to enhance a product or service. Take a look at ideas others have posted, and add a comment, vote, or subscribe to updates on them if they matter to you. If you can't find what you are looking for,

Post your ideas
  1. Post an idea.

  2. Get feedback from the IBM team and other customers to refine your idea.

  3. Follow the idea through the IBM Ideas process.


Specific links you will want to bookmark for future use

Welcome to the IBM Ideas Portal (https://www.ibm.com/ideas) - Use this site to find out additional information and details about the IBM Ideas process and statuses.

IBM Unified Ideas Portal (https://ideas.ibm.com) - Use this site to view all of your ideas, create new ideas for any IBM product, or search for ideas across all of IBM.

ideasibm@us.ibm.com - Use this email to suggest enhancements to the Ideas process or request help from IBM for submitting your Ideas.

Status Not under consideration
Workspace IBM i
Created by Guest
Created on Apr 23, 2017

Add compiler option to check Date Format Validity (Years 2040, 2071).

As of 2040 all 6 digits dates will crash the program or give invalid resutls!

And as 2071 May 10, all 7 digits dates in format *CYMD will crash!

The problem is due now when using future dates, like expiration date or due date.

Add a compiler option, if the program (RPG or CL) is using date operations, formats with keywords UDATE, *DMY, *YMD, *CYMD
etc, the program should not compile.

See also REQ 102980


Use Case:

Add GENOPT(*2040_OK *2071_OK) to all compilations! In future releases make it the default.


Idea priority High
  • Guest
    Reply
    |
    May 4, 2022
    Limited support has been added for a new base year of 1970 in IBM i 7.5. However, this new support does not include any changes to the compilers (which this RFE specifically requested) therefore I am marking this RFE as declined rather than delivered. However, I urge you to read about the new base year support added in 7.5 -- more information can be found in the 7.5 Memo to Users as well as at the following link:

    https://www.ibm.com/support/pages/node/6579221

    Applications should be updated to move away from 2-digit year date formats rather than rely on the operating system to determine the century.

    IBM Power Systems Development
  • Guest
    Reply
    |
    Aug 3, 2021

    We continue to work towards a solution for supporting current dates beyond the year 2039 for 2-digit year date formats (ie. *DMY, *YMD, *MDY) by implementing a new base year for the 100-year window. The support for a new base year will be staged across releases.

    Commands and displays that accept a data type of *DATE on parameters will use this new 100-year window.

    Database and RPG applications that use 2-digit date formats (without the century guard digit) will not use this new 100-year window because the operating system cannot know which century the application intended. Applications will be expected to change to use a date format that includes the century. Applications need not wait for any new support to make the necessary updates. The operating system added additional support prior to the year 2000 which included new date formats and updates to the Convert date (QWCCVTDT) API for using these new formats.

    Note: The status of this RFE has been changed to Uncommitted Candidate because it would not allow an updated response in the Planned for Future release status. It should not be interpreted as a change to our current plan to support 2-digit year current dates for the year 2040 and beyond. Although please note the actual implementation may differ from the specific request as described in the Description section of this RFE.

  • Guest
    Reply
    |
    Oct 30, 2019

    Due to processing by IBM, this request was reassigned to have the following updated attributes:
    Brand - Servers and Systems Software
    Product family - Power Systems
    Product - IBM i
    Component - Work Management and Messaging
    Operating system - IBM i
    Source - None

    For recording keeping, the previous attributes were:
    Brand - Servers and Systems Software
    Product family - Power Systems
    Product - IBM i
    Component - Core OS
    Operating system - IBM i
    Source - None

  • Guest
    Reply
    |
    Jan 10, 2019

    6 Digit dates are dangerous to use even if and when IBM moves the base year from 1940 to another year.

    There are historical dates, future dates, and Dates of Birth. Some of them may cross centuries.

    Therefore the fix needs to be a double one:

    1. Give the ability to change the base year from 1940 to another year.

    2. A compiler option to prevent compiling a program that use 6 digit dates.

    And we will appreciate if IBM adds one more goody: an edit code that will shorten a date to show only 6 digits on the screen. This will solve the problem that some times programmers code 6 digit dates in order to have room on the screen or report.

  • Guest
    Reply
    |
    Jan 10, 2019

    6 Digit dates are dangerous to use even if and when IBM moves the base year from 1940 to another year.

    There are historical dates, future dates, and Dates of Birth. Some of them may cross centuries.

    Therefore the fix needs to be a double one:

    1. Give the ability to change the base year from 1940 to another year.

    2. A compiler option to prevent compiling a program that use 6 digit dates.

    And we will appreciate if IBM adds one more goody: an edit code that will shorten a date to show only 6 digits on the screen. This will solve the problem that some times programmers code 6 digit dates in order to have room on the screen or report.

  • Guest
    Reply
    |
    Oct 3, 2017

    We have a plan in place for the 2-digit year date range that "wraps" back to 1940 after 2039. The supported date range will be changed to use a different base year.

  • Guest
    Reply
    |
    Apr 25, 2017

    To JonParis:

    IBM declined to fix this problem, as you may see it in the following request:
    https://www.ibm.com/developerworks/rfe/execute?use_case=viewRfe&CR_ID=102980

    So the least IBM could do is to block all 6 digits Date Operations at the compiler level. Otherwise it is like building a bridge that will colapse in 23 years. And in cases of future date like Due date or expiration date, it may colpase sometimes today.

  • Guest
    Reply
    |
    Apr 24, 2017

    I voted for this BUT not for the proposed implementation. This is a system date windowing issue - not one to be "fixed" by the compilers. Date formats in the database would also need to be addressed.

    I have to believe that the system has plans in place for this - back in 2000 we knew this was an issue going forward.

0 MERGED

2 out of 3 types of Current Job Date will have wrong results in Year 2040

Merged
Current Job date will be wrong as of year 2040 . I tested year 2040 readines of job dates, and found the following: (Version V6R1) D DT_INZJOB S D INZ(*JOB) * shows wrong results%DATE(UDATE) // shows wrong results %DATE(*DATE) // shows right resul...
almost 7 years ago in IBM i / Application Development 2 Not under consideration