Author Topic: powershell and utc time aka greenwich london uk  (Read 28596 times)

herge

  • Member
  • ***
  • Posts: 477
powershell and utc time aka greenwich london uk
« on: January 16, 2013, 11:14:23 PM »

 Hi are we ready for a rant!

 Windows has made a new batch window called powershell.
 it has trouble formatting utc time.
 you can use get-date and try to use .touniversaltime()
 touniversaltime() does work but you can't format it.
 i e it is short format i e not long form.
 this is long format.

  Wednesday, January 16, 2013 6:42 AM

 write-host -nonewline helps a bit but not ideal.
 so we used and ancient borland c compiler to fix the
 bloody problem.

 touniversaltime is similiar to gmtine in the program
 below it tells the time in England.
 Also MAKE sure you have set the environmental variable
 TZ to your Time zone. i e Control Panel, System
 do it before you open dos box i e cmd.exe or powershell.



/* GMT.CPP Wednesday, January 16, 2013 4:44 AM   
   Author: Herge
   Location: Waterloo, Ontario, CANADA */
#include<locale>
#include<conio>
  using std::cout;
  using std::time_t;
  using std::asctime;
  using std::gmtime;
  using std::localtime;
  using std::tm;
  using std::strftime;
  int main( int )
{
  struct tm *toc;
  char B [ 128 ];
  time_t t;
  t = time ( NULL );
  toc = gmtime ( &t );
  cout << "GMT[UTC] London England Time is: "
       << asctime ( toc );
  strftime ( B, sizeof ( B ), " %A,%B,%d,%Y %X %p UTC\n",
           gmtime ( &t ) );   
  cout << B;         
  getch( );
  return 0;
}

The extension MUST be ps1 or it will not go!
## utc.ps1 Wednesday, January 16, 2013 1:45 AM
get-date
$a = get-date
$a.touniversaltime()
write-host -nonewline $a.touniversaltime(),"UTC"
write-host
c:\masm32\bin\gmt.exe
## E N D of File utc.ps1

Your first powershell program output below.

Wednesday, January 16, 2013 6:50:02 AM
Wednesday, January 16, 2013 11:50:02 AM
1/16/2013 11:50:02 AM UTC
GMT[UTC] London England Time is: Wed Jan 16 11:50:02 2013
 Wednesday,January,16,2013 11:50:02 AM UTC

 you have to press a key to stop it.


 Regards herge
Regards herge
Read "Slow Death by Rubber Duck"
for chemical Laughs.

herge

  • Member
  • ***
  • Posts: 477
Re: powershell and utc time aka greenwich london uk
« Reply #1 on: January 17, 2013, 08:23:41 AM »
Hi again:
The traffic is killing me but just because powershell is little difficult to use.
 And the documentation at the big m$ is at they useless standards.
 It it don't work print it anyway. you will need /CLR option to run it.
 So heads up!
 Tested on 2008 C from Microsoft so please PRAY! and Windows XP SP3
 it will complain about localtime but that problem is in 2038 so i think we
 can wait another twenty years maybe?

 Regard herge

Code: [Select]
// utc64.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
// utc64.cpp : Defines the entry point for the console application.
// needs /CLR Support managed CODE Change the Project Properties!
//\utc64.cpp(14) : fatal error C1190: managed targeted code requires a '/clr' option

#include "stdafx.h"
#include <iostream>
#include <time.h>
// crt_gmtime64_s.c
// This program uses _gmtime64_s to convert a 64-bit
// integer representation of coordinated universal time
// to a structure named newtime, then uses asctime_s to
// convert this structure to an output string.
#using <mscorlib.dll>
using namespace System;
using namespace System::Globalization;
using namespace System::Threading;
using namespace::std;
int main(int argc, _TCHAR* argv[])
{ // Must be const wchar_t
   size_t wcsftime(
   const wchar_t *strDest,
   size_t maxsize,
   const wchar_t *format,
   const struct tm *timeptr
);
   struct tm newtime;
   __int64 ltime;
   char buf[128];
   errno_t err;

   _time64( &ltime );
   cout << endl;

   // Obtain coordinated universal time:
   err = _gmtime64_s( &newtime, &ltime );
   if (err)
   {
      cout << "Invalid Argument to _gmtime64_s."
   << endl;
   }
   
   // Convert to an ASCII representation
   err = asctime_s(buf, 26, &newtime);
   if (err)
   {
      cout << "Invalid Argument to asctime_s."
   << endl;
   }

   cout << "Coordinated universal time is "
    << buf << endl;
   strftime ( buf, sizeof ( buf ), "%A %B %d %Y %X %p %Z\n",
           localtime ( &ltime ) );   
   cout << buf;
   strftime ( buf, sizeof ( buf ), "%#c %p %Z\n",
           localtime ( &ltime ) );   
   cout << buf;
   return 0;
}

   
Regards herge
Read "Slow Death by Rubber Duck"
for chemical Laughs.

dedndave

  • Member
  • *****
  • Posts: 8827
  • Still using Abacus 2.0
    • DednDave
Re: powershell and utc time aka greenwich london uk
« Reply #2 on: January 17, 2013, 10:45:56 AM »
if you are doing greenwich time, why not use TIME_FORCE24HOURFORMAT

Code: [Select]
        pushad
        mov     eax,esp
        INVOKE  GetTimeFormat,LOCALE_USER_DEFAULT,TIME_FORCE24HOURFORMAT or TIME_NOTIMEMARKER,NULL,NULL,eax,32
        print   esp,13,10
        add     esp,32

herge

  • Member
  • ***
  • Posts: 477
Re: powershell and utc time aka greenwich london uk
« Reply #3 on: January 17, 2013, 12:31:54 PM »
 Hi dedndave:

 The problem is that the format options for .touniversaltime()
 in powershell totally are sub-standard even for m$.
 It was easy for an old c compiler and Borland is really old.
 
 I will try out your code tomorrow.

 Regards and thanks herge
Regards herge
Read "Slow Death by Rubber Duck"
for chemical Laughs.

dedndave

  • Member
  • *****
  • Posts: 8827
  • Still using Abacus 2.0
    • DednDave
Re: powershell and utc time aka greenwich london uk
« Reply #4 on: January 17, 2013, 12:45:24 PM »
GetTimeFormat is actually intended to retrieve the local time format
however, you can also use it to get current local time
it can also be used to format time, according to a format string

GetSystemTime can be used to get UTC (GMT) time and store it in a SYSTEMTIME structure
you can then use GetTimeFormat with a format string to format it
http://msdn.microsoft.com/en-us/goglobal/bb688125.aspx

herge

  • Member
  • ***
  • Posts: 477
Re: powershell and utc time aka greenwich london uk
« Reply #5 on: January 17, 2013, 01:07:48 PM »

 Hi dedndave:

 That was not bad, only forgot the environmental variable
 TZ .I suspect if you don't come from a DOS old OS you
 will never heard of it.
 I am in EST are you in MST or PST? (Time Zone)
 It is a Canadian invention something to do with
 the RailRoads if my memory is any good.

 Regards herge

Regards herge
Read "Slow Death by Rubber Duck"
for chemical Laughs.

dedndave

  • Member
  • *****
  • Posts: 8827
  • Still using Abacus 2.0
    • DednDave
Re: powershell and utc time aka greenwich london uk
« Reply #6 on: January 17, 2013, 01:11:15 PM »
i am in MST
in Arizona, we do not use daylight savings time

i am not sure what part you are refering to as a Canadian invention
time zones were around long before trains   :biggrin:

herge

  • Member
  • ***
  • Posts: 477
Re: powershell and utc time aka greenwich london uk
« Reply #7 on: January 17, 2013, 01:24:05 PM »

 Hi dedndave:

 Yes I am wrong but is something to do with Railways in England
 according to Wiki.
 If it is any thing to do with British Rail we are in deep Sh*t!

 Regards herge
Regards herge
Read "Slow Death by Rubber Duck"
for chemical Laughs.

dedndave

  • Member
  • *****
  • Posts: 8827
  • Still using Abacus 2.0
    • DednDave
Re: powershell and utc time aka greenwich london uk
« Reply #8 on: January 17, 2013, 01:27:10 PM »
you may be right, as far as "official time zones"
but - the correct time was critical to navigating ships in days of old
as i recall, they tried to have a very accurate clock that kept London time
(actually, it was Greenwich time, the 0 meridian line passes through Greenwich)
the more accurate your clock, the closer you could determine your longitude

that was before Einstein got involved
he proved that a clock in motion kept time differently than one that was stationary   ::)

herge

  • Member
  • ***
  • Posts: 477
Re: powershell and utc time aka greenwich london uk
« Reply #9 on: January 17, 2013, 01:45:07 PM »

 Hi dedndave:

 They was a bad Helicopter crash in
 London England. He hit a Building crane
 in the fog. It took me for ever and a day
 to download BBC story.

 Bye Now DND code for department of National Defense
Regards herge
Read "Slow Death by Rubber Duck"
for chemical Laughs.

dedndave

  • Member
  • *****
  • Posts: 8827
  • Still using Abacus 2.0
    • DednDave
Re: powershell and utc time aka greenwich london uk
« Reply #10 on: January 17, 2013, 01:50:51 PM »
you were right -
railways had something to do with it...

http://www.timeanddate.com/time/time-zones-history.html

dedndave

  • Member
  • *****
  • Posts: 8827
  • Still using Abacus 2.0
    • DednDave
Re: powershell and utc time aka greenwich london uk
« Reply #11 on: January 17, 2013, 02:04:47 PM »
that didn't seem like a logical coarse of events
i knew that the concept of "daylight savings time" was Ben Franklin's idea
and - trains came after Ben   :P

herge

  • Member
  • ***
  • Posts: 477
Re: powershell and utc time aka greenwich london uk
« Reply #12 on: January 17, 2013, 02:11:48 PM »
 
 Hi dedndave:

 According to Google , Fleming was Scottish or a Canadian
 and did something for the Railways in Canada. Died before
 the  end of first world war.

 Assembly History is so intresting!

 Regards herge
Regards herge
Read "Slow Death by Rubber Duck"
for chemical Laughs.

dedndave

  • Member
  • *****
  • Posts: 8827
  • Still using Abacus 2.0
    • DednDave
Re: powershell and utc time aka greenwich london uk
« Reply #13 on: January 17, 2013, 02:21:03 PM »
here you go...

http://en.wikipedia.org/wiki/Sandford_Fleming

a different guy named Fleming, that i am familiar with   :P

http://en.wikipedia.org/wiki/John_Ambrose_Fleming

herge

  • Member
  • ***
  • Posts: 477
Re: powershell and utc time aka greenwich london uk
« Reply #14 on: January 17, 2013, 02:37:39 PM »
Hi dedndave:

That's intresting my Dad use to install RADAR for Raytheon
before he retired. Also a minor American use to work on the
Telegraph in a Railway station in Stratford, Ontario
some bloke named Edison?

Regards herge
Regards herge
Read "Slow Death by Rubber Duck"
for chemical Laughs.