python各种语言间时间的转化实现代码

951次阅读  |  发布于5年以前

一 基本知识

millisecond 毫秒
microsecond 微秒
nanosecond 纳秒
1秒=1000毫秒 1毫秒=1000微秒 1微秒=1000纳秒

二 perl

perl中可以使用time或localtime来获得时间,time返回从1970年1月1日0点的秒数,localtime返回当前时间的字符串表示,或者年月日等得tuple表示。


    #!/usr/bin/perl
    use strict;
    use warnings;
    use POSIX qw(strftime);

    # seconds from 1970.01.01 00:00:00
    my $ti = time();
    print $ti;
    print "\n";
    print strftime("%Y-%m-%d %H:%M:%S\n", localtime($ti));
    #1310623469
    #2011-07-14 14:03:58

    my $t = localtime();
    print $t;
    print "\n";
    #Thu Jul 14 12:25:16 2011

    my ($sec, $min, $hour, $mday, $mon, $year, $wday, $yday, $isdst)=localtime();
    print $year;
    print "\n";
    #111

    print strftime("%Y-%m-%d %H:%M:%S\n", localtime());
    #2011-07-14 12:26:01

三 c#
1tick = 100 nanosecond


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace MyTest
    {
      class Program
      {
        static void DateTimeTest()
        {
          DateTime dt2 = DateTime.Now;
          Console.WriteLine(dt2.Ticks);
          Console.WriteLine(dt2.ToString("MM/dd/yyyy hh:mm:ss"));
        }

        static DateTime? ConvertPerlTimeToDateTime(string perltime)
        {
          DateTime? dt = null;
          //perl time variable : seconds from 1970.01.01 00:00:00 
          string sdt = perltime;
          long ldt = 0;
          if (long.TryParse(sdt, out ldt))
          {
            long ldt2 = new DateTime(1970, 1, 1).Ticks + ldt * 1000 * 1000 * 10;
             dt = new DateTime(ldt2, DateTimeKind.Local);
            Console.WriteLine(dt.Value.ToString("MM/dd/yyyy hh:mm:ss"));
          }
          return dt;
        }

        static void Main(string[] args)
        {
          DateTimeTest();
          ConvertPerlTimeToDateTime("1309423883");
          //634462479788396720
          //07/14/2011 01:46:18
          //06/30/2011 08:51:23
        }
      }
    }

四 python

python的perl相似,time也是从1970年1月1日开始的秒数。


    import time

    ISOTIMEFORMAT='%Y-%m-%d %X'

    # seconds from 1970.01.01 00:00:00
    t = time.time()
    print (t)
    print time.strftime(ISOTIMEFORMAT,time.localtime(t))
    #1310623143.12
    #2011-07-14 13:59:03

    (year,mon,day,hour,min,sec,wday,yday,isdst) = time.localtime()
    print (year)
    print (time.strftime(ISOTIMEFORMAT, time.localtime()))
    #2011
    #2011-07-14 13:59:03

Copyright© 2013-2020

All Rights Reserved 京ICP备2023019179号-8