python如何获取13位的UNIX时间戳

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python如何获取13位的UNIX时间戳相关的知识,希望对你有一定的参考价值。

import time

tamp = time.time()
tamp是带小数的时间戳
可以加上int
int(time.time())

返回的就是十三位的时间戳了
参考技术A #!/usr/bin/env python
import time

#打印当前时间戳(毫秒)
t = int(time.time() * 1000)
print(t)

参考技术B 基于文本文档(Markdown) 设想好需要的基本需要的表、字段、类型;
使用 Rails Migration 随着功能的开发逐步创建表;
随着细节功能的开发、需求,逐步增加字段,删除字段,或者调整字段类型;
第一个 Release 的时候清理 Migrations 合并成一个;
随着后期的改动,逐步增加、修改、删除字段或表。
基本上我的所有项目都是这么搞的,这和项目是否复杂无关。
所以我前面为什么说思路需要转变。本回答被提问者和网友采纳

如何每隔一天自动获取 Unix 时间戳?

【中文标题】如何每隔一天自动获取 Unix 时间戳?【英文标题】:How can I get Unix Timestamp automatically for every next day? 【发布时间】:2021-12-18 10:24:16 【问题描述】:

我需要为每个第二天的特定时间生成以毫秒为单位的 Unix 时间戳。

例如: 今天是 2021 年 4 月 11 日 09:00:00,那么时间戳是:1636002000000

明天我需要 2021 年 5 月 11 日 09:00:00

后天6/11/2021 09:00:00

等等……

那么如何在 Java 中获得自动生成的时间戳?

【问题讨论】:

你需要这个做什么? 长历元 = System.currentTimeMillis()/1000;以秒为单位返回纪元。 epochconverter.com Unix Epoch 于 1970 年 1 月 1 日,UTC java.util.Date 从这个日期开始,而不是在 0 年 0 日 0 分钟。所以使用 Duration 或 Period 进行 java.time 调整windsolarhybridaustralia.x10.mx/… @ThorbjørnRavnAndersen 我正在开发每天早上 9 点从 api 获取数据的应用程序。我是编程新手 这听起来像是您操作系统中的调度程序可以帮助您。 【参考方案1】:

java.time

与 Samuel Marchant 一样,我建议您使用现代 Java 日期和时间 API java.time 来处理日期和时间。

如果您希望每天 9 点,请先将其定义为常量:

private static final LocalTime TIME = LocalTime.of(9, 0);

现在您的毫秒值可以通过这种方式获得:

    ZonedDateTime zdt = ZonedDateTime.now(ZoneId.systemDefault()).with(TIME);
    for (int i = 0; i < 10; i++) 
        long timestampMillis = zdt.toInstant().toEpochMilli();
        System.out.format("%-30s %13d%n", zdt, timestampMillis);

        zdt = zdt.plusDays(1);
    

我刚才运行代码时的输出:

2021-11-11T09:00+01:00[Europe/Paris] 1636617600000
2021-11-12T09:00+01:00[Europe/Paris] 1636704000000
2021-11-13T09:00+01:00[Europe/Paris] 1636790400000
2021-11-14T09:00+01:00[Europe/Paris] 1636876800000
2021-11-15T09:00+01:00[Europe/Paris] 1636963200000
2021-11-16T09:00+01:00[Europe/Paris] 1637049600000
2021-11-17T09:00+01:00[Europe/Paris] 1637136000000
2021-11-18T09:00+01:00[Europe/Paris] 1637222400000
2021-11-19T09:00+01:00[Europe/Paris] 1637308800000
2021-11-20T09:00+01:00[Europe/Paris] 1637395200000

与您自己的答案中的代码相比,请不仅享受阅读代码的简单程度,而且首先要享受阅读代码更自然的程度。与 Java 1.0 和 1.1 中设计不佳的旧类相比,这是 java.time 的典型特征。

链接

Oracle Tutorial: Date Time 解释如何使用 java.time。

【讨论】:

【参考方案2】:

在 Linux 中,您可以让 Chron 启动一个可以在某处写入的类,然后在检查流已写入后退出。你会要求它提前 30 秒左右开始,然后班级会寻找写入文件的时刻,然后自行退出。 使用 java,对于 UNIX 时间戳,java,time.Clock 需要为 UTC。

你会在课堂上使用这样的作品

// static Clock fixed(Instant fixedInstant, ZoneId zone)  note Clock.Instant  

Clock   uxtmptmp = Clock.systemUTC();

// not sure of the behaviour of java.time.Clock.tick()   tick(Clock baseClock, Duration tickDuration) - note Clock.millis()   

Instant instxstmp = Instant.now(uxtmptmp);
//...
long uxepo = instxstmp.getEpochSecond();

【讨论】:

【参考方案3】:

我找到了解决方案。

首先,我得到了当前的日期、月份和年份:

Calendar calendar = Calendar.getInstance();
int day = calendar.get(Calendar.DAY_OF_MONTH);
int month = calendar.get(Calendar.MONTH)+1;
int Year = calendar.get(Calendar.YEAR);

其次,我使用了StringBuilder,将时间部分设置为上午 09:00:

StringBuilder s1 = new StringBuilder()
    .append(day).append("/")                   
    .append(month).append("/")
    .append(Year).append(" ")
    .append("09").append(":").append("00");

第三,我解析得到todayTimeStamp

todayTimeStamp = new SimpleDateFormat("dd/MM/yyyy HH:mm")
    .parse(String.valueOf(s1)).getTime();

【讨论】:

这是一个糟糕的解决方案。 CalendarSimpleDateFormat 类设计不佳且早已过时,后者尤其是出了名的麻烦。没有人应该想使用它们。改用ZonedDateTime 和java.time, the modern Java date and time API, 中的其他类。

以上是关于python如何获取13位的UNIX时间戳的主要内容,如果未能解决你的问题,请参考以下文章

UNIX时间戳手工计算方法

如何将日期时间转换为 c 中的 unix 时间戳?

js和php获取的时间戳位数不一致问题

如何将 13 位 Unix 时间戳转换为日期和时间?

如何在 kotlin 中将纪元时间戳转换为 unix 十六进制时间戳?

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