KBEC-00224 - Date Manipulation in Perl

Summary

ElectricFlow server accepts dates in ISO8601 form ("Zulu" times), that is, yyyy-MM-ddTHH:mm:ssZ, for example: 2010-02-26T23:30:31.899Z.

How do I convert it to a different format and/or timezone?

Solution

Use a language of your choice (ec-perl, javascript, shell etc.) to convert this string into the format you want.
Use language-specific tools to convert the date from one timezone to another.

Examples - using ec-perl

1. Changing the format of the job property value /myJob/createTime to yyyyMMddhhmmss

 
use strict; 
use ElectricCommander; 
my $ec = ElectricCommander(); 
my $createtime = $ec->getProperty("/myjob/createTime")->findvalue("//value"); 
$createtime =~ s/T|:|-|\..+$//g; 
print $createtime;

2. Converting /myjob/createTime to Eastern Time.

 
use strict;
use Date::Manip;
use ElectricCommander;
my $ec = new ElectricCommander();

my $createtime = $ec->getProperty("/myjob/createTime")->findvalue("//value");
$createtime =~ s/\.\d+Z$//;
$createtime =~ s/T/ /;
print "createtime = $createtime\n";

Date_Init("TZ=GMT");
$createtime = ParseDate($createtime);
my $formattedtime = UnixDate($createtime, "%Y%m%d%H%M%S");
print "formattedtime = $formattedtime\n";
 
$createtime = Date_ConvTZ($createtime, 'GMT', 'EST');
$formattedtime = UnixDate($createtime, "%Y%m%d%H%M%S");
print "formattedtime = $formattedtime\n";

Please note...

  • There is more than one way to accomplish this using Perl.
    The above examples are only intended to give you an idea; they are not a required way of accomplishing the change.
  • You are not limited to only using the Perl modules that come with ElectricFlow.
    If they do not cover your scenario, you can
Have more questions? Submit a request

Comments

Powered by Zendesk