r语言 怎样把unix时间戳转换回时间

r语言 怎样把unix时间戳转换回时间,第1张

  SystemcurrentTimeMillis() :返回当前系统的毫秒数,由于取得的是毫秒数,所以在处理UNIX时间戳的时候需要转换成秒

    也就是:

        long epoch = SystemcurrentTimeMillis()/1000;

方法:

    1、获取当前系统的UNIX时间戳

        Systemoutprintln("获取系统毫秒数方法1:"+LongtoString(new Date()getTime()));

        Systemoutprintln("获取系统毫秒数方法2:"+LongtoString(SystemcurrentTimeMillis()));

    注意:以上代码获取的都是系统毫秒数,在实际的 *** 作中我们一般都是记录毫秒说以求记录的精度,当处理UNIX时间戳的时候需要把数据进行处理。

    2、将UNIX时间戳转换成系统可以处理的时间

        Systemoutprintln(""+new javatextSimpleDateFormat("yyyy MM-dd HH:mm:ss")format(new javautilDate (1215782027390L)));

        输出:2008 07-11 21:13:47

    注意:此时处理的数据为系统毫秒不是UNIX时间戳

    

    3、讲时间转换成UNIX时间戳

        long epoch = new javatextSimpleDateFormat ("dd/MM/yyyy HH:mm:ss")parse("09/22/2008 16:33:00")getTime();

注意:

    请注意!对与不同的时区处理上有差异,首先要清楚自己所在的时区。

        String timezone_info = SystemgetProperty("usertimezone");

        Systemoutprintln("当前的时区:"+timezone_info);

        Systemoutprintln("时区信息:"+TimeZonegetDefault());

    输出:

         当前的时区:Asia/Shanghai

         时区信息:sunutilcalendarZoneInfo[id="Asia/Shanghai",offset=28800000,dstSavings=0,useDaylight=false,transitions=19,lastRule=null]

    处理不同的时区的方法:

        SimpleDateFormat sd = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

            sdsetTimeZone(TimeZonegetTimeZone("GMT+8"));

            String strDate = sdformat(new Date(1215782027390L));

            Systemoutprintln("正八区当前时间:"+strDate);

         输出:

                 正八区当前时间:2008-07-11 21:13:47

 

如何在不同编程语言中获取现在的Unix时间戳(Unix timestamp)?

先上代码进行java时间转换成unix timestamp

[html] view plaincopy

import javatextDateFormat;

import javatextParseException;

import javatextSimpleDateFormat;

import javautilDate;

/

@author kongqz kongqingzhu@gmailcom

@version 创建时间:2013-2-19 上午10:21:47

/

public class TestUnixTime {

public static void main(String[] args) throws ParseException{

DateFormat df=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

//1361325960

long epoch = dfparse("2013-02-20 10:06:00")getTime();

Systemoutprintln("should be 1361325960 :"+epoch);

Date d=new Date();

String t=dfformat(d);

epoch=dfparse(t)getTime()/1000;

Systemoutprintln("t is :"+t+",unix stamp is "+epoch);

}

}

Java time

JavaScript Mathround(new Date()getTime()/1000)

getTime()返回数值的单位是毫秒

Microsoft NET / C# epoch = (DateTimeNowToUniversalTime()Ticks - 621355968000000000) / 10000000

MySQL SELECT unix_timestamp(now())

Perl time

PHP time()

PostgreSQL SELECT extract(epoch FROM now())

Python 先 import time 然后 timetime()

Ruby 获取Unix时间戳:Timenow 或 Timenew

显示Unix时间戳:Timenowto_i

SQL Server SELECT DATEDIFF(s, '1970-01-01 00:00:00', GETUTCDATE())

Unix / Linux date +%s

VBScript / ASP DateDiff("s", "01/01/1970 00:00:00", Now())

其他 *** 作系统

(如果Perl被安装在系统中) 命令行状态:perl -e "print time"

如何在不同编程语言中实现Unix时间戳(Unix timestamp) → 普通时间?

Java String date = new javatextSimpleDateFormat("dd/MM/yyyy HH:mm:ss")format(new javautilDate(Unix timestamp 1000))getTime();

JavaScript 先 var unixTimestamp = new Date(Unix timestamp 1000)然后 commonTime = unixTimestamptoLocaleString()

Linux date -d @Unix timestamp

MySQL from_unixtime(Unix timestamp)

Perl 先 my $time = Unix timestamp 然后 my ($sec, $min, $hour, $day, $month, $year) = (localtime($time))[0,1,2,3,4,5,6]

PHP date('r', Unix timestamp)

PostgreSQL SELECT TIMESTAMP WITH TIME ZONE 'epoch' + Unix timestamp) INTERVAL '1 second';

Python 先 import time 然后 timegmtime(Unix timestamp)

Ruby Timeat(Unix timestamp)

SQL Server DATEADD(s, Unix timestamp, '1970-01-01 00:00:00')

VBScript / ASP DateAdd("s", Unix timestamp, "01/01/1970 00:00:00")

其他 *** 作系统

(如果Perl被安装在系统中) 命令行状态:perl -e "print scalar(localtime(Unix timestamp))"

如何在不同编程语言中实现普通时间 → Unix时间戳(Unix timestamp)?

Java long epoch = new javatextSimpleDateFormat("dd/MM/yyyy HH:mm:ss")parse("01/01/1970 01:00:00");

JavaScript var commonTime = new Date(DateUTC(year, month - 1,day,hour,minute,second))

MySQL SELECT unix_timestamp(time)

时间格式: YYYY-MM-DD HH:MM:SS 或 YYMMDD 或 YYYYMMDD

Perl 先 use Time::Local 然后 my $time = timelocal($sec, $min, $hour, $day, $month, $year);

PHP mktime(hour, minute, second, day,month,year)

PostgreSQL SELECT extract(epoch FROM date('YYYY-MM-DD HH:MM:SS'));

Python 先 import time 然后 int(timemktime(timestrptime('YYYY-MM-DD HH:MM:SS', '%Y-%m-%d %H:%M:%S')))

Ruby Timelocal(year, month, day, hour,minute,second)

SQL Server SELECT DATEDIFF(s, '1970-01-01 00:00:00', time)

Unix / Linux date +%s -d"Jan 1, 1970 00:00:01"

VBScript / ASP DateDiff("s", "01/01/1970 00:00:00", time)

以系统当前时间为起点,得到昨天一天数据:

select from 表名 where Time<unix_timestamp(date(CURDATE())) and Time>=unix_timestamp(DATE_ADD(date(CURDATE()),INTERVAL -1 DAY))

确切的说不存在创建时间

文件从创建后不曾修改过则可认为创建时间=修改时间

若文件创建后状态也不曾改变过则可认为创建时间=改变时间

若文件创建后不曾被读取过则可认为创建时间=访问时间

但是,上述情况基本上是不可能的,也就是说几乎不可能获取到文件的创建时间。

可以通过stat命令查看文件的状态,其中

访问时间(accesstime):读取一次文件的内容,该时间便会更新。比如对这个文件使用less命令或者more命令。(ls、stat这样的命令不会修改文件访问时间)

修改时间(modifytime):对文件内容修改一次便会更新该时间。例如使用vim等工具更改了文件内容并保存后,文件修改时间发生变化。通过ls –l列出的时间便是这个时间。要想看到文件访问时间可使用ls –ul命令。

改变时间(changetime):更改文件的属性便会更新该时间,比如使用chmod命令更改文件属性,或者执行其他命令时隐式的附带更改了文件的属性若文件大小等。

1日期函数UNIX时间戳转日期函数: from_unixtime语法:from_unixtime(bigint unixtime[, stringformat])

返回值: string

说明: 转化UNIX时间戳(从1970-01-0100:00:00 UTC到指定时间的秒数)到当前时区的时间格式

举例:

hive> select from_unixtime(1323308943,'yyyyMMdd') from dual;

20111208

2获取当前UNIX时间戳函数: unix_timestamp语法: unix_timestamp()

返回值: bigint

说明: 获得当前时区的UNIX

不用C语言编程序,直接运行命令:

ls -l 就可以看到文件的日期,然后用重定向方式可以直接生成一个结果文本文件

比如当前目录下:

#ls -l > filedatetxt

然后filedate的内容就是

-rx-r--r-- root root 196 2010-05-10 10:12 foundtxt

-rx-r--r-- root root 124 2010-05-15 19:36 hellocpp

这是获取所有文件的时间日期,如果要更精确的指向某一个文件,这样写:

#ls -l hellocpp >filedatetxt

这样结果文件内容就确定只有一行了:

-rx-r--r-- root root 124 2010-05-15 19:36 hellocpp

如果你坚持要编程序,可以这样写:

1、用bash,直接编辑一个文件比如mylsdate, 内容为:

ls -l $1 > $2

保存这个文件,并用命令chmod +x mylsdate使这个文件变成可执行脚本

用的时候像这样:

/mylsdate xhcpp filedatetxt

那么filedatetxt的内容就会变成

-rx-r--r-- root root 124 2010-05-15 19:36 hellocpp

2、用C,编辑程序mylsdatec

#include <stdioh>

#include <stdlibh>

int main(int argc, char argv[])

{

char cmd[80];

if (argc < 3) {

printf("usage: %s [file] [datefile]\n", argv[0]);

return 0;

}

sprintf(cmd, "ls -l %s > %s\n", argv[1], argv[2]);

system(cmd);

return 0;

}

然后用g++ -o mylsdate mylsdatec编译后,结果和上面的bash脚本完全一致

只要你不嫌麻烦

以上就是关于r语言 怎样把unix时间戳转换回时间全部的内容,包括:r语言 怎样把unix时间戳转换回时间、如何在不同编程语言中获取现在的Unix时间戳、如何mysql里直接取一个时间戳的前一天等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/10176053.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-06
下一篇2023-05-06

发表评论

登录后才能评论

评论列表(0条)

    保存