一 基本知识
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
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
}
}
}
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
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
完!