C-Sharp | Java | Python | Swift | GO | WPF | Ruby | Scala | F# | JavaScript | SQL | PHP | Angular | HTML
Array: We see an array of OADates you might encounter. Typically the doubles will be somewhere in the 30,000s, but you may encounter outliers.
ArrayNext: It loops with foreach through each example string. We use a foreach loop to look at each number in the array.
ForeachInfo: These numbers would be typically be extracted from Microsoft Excel Interop or some databases.
ExcelFromOADate: We show some example calls and output. With Console.WriteLine, we print the results.
ConsoleC# program that uses FromOADate
using System;
class Program
{
static void Main()
{
var arr = new string[]
{
// OA Dates in early 2008.
"39456", // (1/9/2008)
"39482",
"39484",
"39493",
"39496",
"39497",
"39501",
"39506",
"39510",
"39513",
"39515",
"39521", // (3/14/2008)
// Different series starts here.
"36526", // (1/1/2000)
"36557", // (2/1/2000)
"39270" // (7//7/2007)
};
foreach (string b in arr)
{
// We must have a double to convert the OA date to a real date.
double d = double.Parse(b);
// Get the converted date from the OLE automation date.
DateTime conv = DateTime.FromOADate(d);
// Write to console.
Console.WriteLine("{0} = {1}",
b,
conv.ToShortDateString());
}
}
}
Output
39456 = 1/9/2008
39482 = 2/4/2008
39484 = 2/6/2008
39493 = 2/15/2008
39496 = 2/18/2008
39497 = 2/19/2008
39501 = 2/23/2008
39506 = 2/28/2008
39510 = 3/3/2008
39513 = 3/6/2008
39515 = 3/8/2008
39521 = 3/14/2008
36526 = 1/1/2000
36557 = 2/1/2000
39270 = 7/7/2007
Finally: We use the static DateTime.FromOADate to turn the double into a regular DateTime.
StaticInput OLE date:
39456
39482
39484
36526
36557
39270
Output DateTime:
1/9/2008
2/4/2008
2/6/2008
1/1/2000
2/1/2000
7/7/2007
Note: These methods are mainly required for legacy XLS files, which may be replaced with more robust XLSX XML files.