您的位置:

Go毫秒时间戳详解

一、毫秒时间戳在线转换

毫秒时间戳(Millisecond Timestamp)是指从1970年1月1日 00:00:00 UTC(协调世界时)到现在的毫秒数。其中,UTC是指协调世界时,是世界标准时间。毫秒时间戳通常用于标识某一事件或操作的执行时间。

在线转换毫秒时间戳可以通过Web工具完成,例如https://tool.lu/timestamp/,该工具可以将当前时间转换为毫秒时间戳,也可以将任意时间转换为对应的毫秒时间戳。

下面是示例代码:

t := time.Now().UnixNano() / 1e6
fmt.Println(t)

二、毫秒时间戳转换日期格式

毫秒时间戳转换为日期格式可以使用Go语言内置的time包完成。格式化日期需要指定一个格式化字符串,具体的格式化字符可以参考https://golang.org/pkg/time/#Time.Format

下面是示例代码:

t := time.Now().UnixNano() / 1e6
dt := time.Unix(t/1000, t%1000*int64(time.Millisecond)).Format("2006-01-02 15:04:05")
fmt.Println(dt)

三、Linux获取毫秒时间戳

在Linux系统中,可以使用date命令获取当前时间的毫秒时间戳。需要注意的是,Linux的date命令默认输出的是秒级别的时间戳,需要加上%3N格式化字符才能输出毫秒级别的时间戳。

下面是示例代码:

// 获取当前时间的毫秒时间戳
date +%s%3N

四、时间戳是毫秒还是秒

时间戳既有毫秒级别的,也有秒级别的。在Go语言中,time包提供的Unix函数返回的是秒级别的时间戳,而UnixNano函数返回的是纳秒级别的时间戳,需要除以1e6来获取毫秒时间戳。

在其他编程语言中,也有类似的返回秒级别和毫秒级别的时间戳的函数,需要注意查看文档。

五、Linux获取毫秒时间戳命令

在Linux中,可以使用date命令获取当前时间的毫秒时间戳。命令格式如下:

date +%s%3N

六、时间戳转换器毫秒

时间戳转换器是指可以将时间戳转换为日期时间格式的工具,常见的有在线工具和桌面应用程序。其中,转换毫秒级别的时间戳需要特别注意,因为时间戳通常为十位数或者十三位数,需要先除以1000或者1000000来获取正确的时间戳。

七、MySQL日期转时间戳毫秒

MySQL的日期时间格式通常为YYYY-MM-DD HH:MM:SS,可以使用UNIX_TIMESTAMP函数将其转换为秒级别的时间戳,也可以使用UNIX_TIMESTAMP函数乘以1000将其转换为毫秒级别的时间戳。

下面是示例代码:

SELECT UNIX_TIMESTAMP('2022-01-01 00:00:00') * 1000;

八、C语言获取毫秒级时间戳

在C语言中,可以使用time.h头文件中的clock_gettime函数获取一个数值精度是ns的计时器的值,从而获取毫秒级别的时间戳。需要注意的是,该函数的可移植性不太好,只在Linux和其他类Unix系统中实现。

下面是示例代码:

#include 
#include 
    
 
int main()
{
    struct timespec ts;
 
    if (clock_gettime(CLOCK_REALTIME, &ts) != 0) {
        perror("clock_gettime");
        return 1;
    }
 
    printf("%ld\n", ts.tv_sec * 1000 + ts.tv_nsec / 1000000);
 
    return 0;
}

   
  

九、Oracle获取时间戳毫秒

在Oracle数据库中,可以使用TO_TIMESTAMP函数将字符串转换为时间类型,然后使用CAST函数将时间类型转换为毫秒级别的时间戳。

下面是示例代码:

SELECT CAST(TO_TIMESTAMP('2022-01-01 00:00:00.000', 'YYYY-MM-DD HH24:MI:SS.FF') AS DATE) * 1000 FROM DUAL;