Well of course not! 2038 is unbelievably so far off in the future it will never happen.
I will of course be living out my retirement at that point, so of course I wash my hands of the whole affair... besides all these young programmers need something to occupy themselves.
Seriously though, I took your idea and played around a bit and came up with the following:
#! /usr/bin/perl -w use strict; use Win32::OLE::Variant; use Win32::OLE::NLS qw/ :LOCALE :DATE /; my $v = Win32::OLE::Variant->new(VT_DATE, shift || 'Sep 3,2001'); print $v->Date( 'yyyy/MM/dd' ), "\n"; print $v->Number( {ThousandSep => '', DecimalSep => '.'}), "\n";
plugging in some values, we get:
E:\david\perl>perl wov.pl "Sep 3,2001" 2001/09/03 37137.00 E:\david\perl>perl wov.pl "Jan 1,1900" 1900/01/01 2.00 E:\david\perl>perl wov.pl "Jan 2,1900" 1900/01/02 3.00 E:\david\perl>perl wov.pl "Jan 3,1900" 1900/01/03 4.00
So it appears that it will be possible to coax this into an epoch value. Thanks for the pointer.
update: it works. I'm not sure how I missed this first time around, because I did play with the Time method... As it turns out, the Date and Time methods don't display the value as a date or time, but rather, they display the date or time component of the value. This means that if you want to build up a reasonable timestamp, you merely have to do the following:
my $t = $v->Date( 'yyyy/MM/dd ' ) . $v->Time( 'HH:mm:ss' );In reply to Re:x2 Formatting Win32::OLE::Variant Dates
by grinder
in thread Formatting Win32::OLE::Variant Dates
by grinder
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |