EducationSoftwareStrategy.com
StrategyCommunity

Knowledge Base

Product

Community

Knowledge Base

TopicsBrowse ArticlesDeveloper Zone

Product

Download SoftwareProduct DocumentationSecurity Hub

Education

Tutorial VideosSolution GalleryEducation courses

Community

GuidelinesGrandmastersEvents
x_social-icon_white.svglinkedin_social-icon_white.svg
Strategy logoCommunity

© Strategy Inc. All Rights Reserved.

LegalTerms of UsePrivacy Policy
  1. Home
  2. Topics
  3. Different Parsed Date Values for "01/01/0001" on Windows vs. Linux

Different Parsed Date Values for "01/01/0001" on Windows vs. Linux


Jiaqi Huang

Software Engineer, Senior • MicroStrategy


With Intelligence Server installed on different OS platforms (Windows vs. Linux), users observe different results when parsing a string such as "01/01/0001" into a date value.

Symptom

When Intelligence Server is installed in Windows system, in a report that includes a view filter, selecting the attribute element with the date value “01/01/0001” in the view filter causes the value to change automatically to “01/01/2001” after the selection is applied:

1.webp

While if it is in Linux system, the selection keeps to “01/01/0001”

2.webp

Cause

The root cause is that, on Windows, Intelligence Server uses the Win32 API VarDateFromStr to parse input strings into datetime values.

VarDateFromStr is part of the legacy COM/OLE Automation date handling. It interprets 2‑digit years according to the system’s “2‑digit year cutoff” setting, and it effectively treats very small years as 2‑digit years as well.

In this case:

  • Input: "01/01/0001".
  • The parser does not treat 0001 as year 1 CE.
  • Instead, it normalizes the year and effectively treats "0001" as "01" (a 2-digit year).
  • On Windows, by default:
    • 2-digit years 00-29 map to 2000-2029.
    • 2-digit years 00-29 map to 1930-1999. (This is configurable in the REgional Settings).

Therefore, "01/01/0001" is interpreted as January 1st, 2001.

This behavior is consistent with many historical Windows date parsing APIs when they are not explicitly given a strict 4‑digit year format. The issue only occurs when the year is less than 100; for years ≥ 100, the parsing result is consistent and does not exhibit this misinterpretation.

Solution

We introduce a new configuration setting “parse-with-ICU” to make the parsing result on Windows consistent with Linux. This solution only applies to the Windows platform.

  1. Stop services on Windows
    Stop the Intelligence Server and Tomcat processes.
  2. Edit the configuration file
    Locate the I-Server configuration file:
    C:\Program Files (x86)\Common Files\MicroStrategy\NumberFormattingCustomization.xml
    In this file, enable the new “parse with ICU” setting under the en-US locale (when parsing element IDs, server will always use this locale).

3.webp

3. Restart services
Restart Intelligence Server and Tomcat so the new configuration takes effect.


Comment

0 comments

Details

Knowledge Article

Published:

May 27, 2026

Last Updated:

May 27, 2026