Android开发:如何根据给定的日期时间参数获取timestamp时间戳
基于指定日期时间参数获取时间戳的实现方法
前置注意事项
- 多数编程语言内置的日期处理类月份从0开始计数,你给出的
MONTH=2代表公历3月,代码中需要做减1偏移,避免月份计算错误 - 时间戳默认指1970-01-01 00:00:00 UTC到目标时间的差值,以下实现默认使用系统当前时区,需要UTC时间戳的话可自行修改时区配置
各主流语言实现示例
Java实现
import java.util.Calendar; public class TimeStampDemo { public static int YEAR = 2021; public static int MONTH = 2; public static int DAY = 23; public static int HOUR = 12; public static int MINUTE = 56; public static void main(String[] args) { Calendar calendar = Calendar.getInstance(); // 月份做减1偏移适配Calendar的计数规则 calendar.set(YEAR, MONTH - 1, DAY, HOUR, MINUTE, 0); // 毫秒级时间戳 long timeStampMs = calendar.getTimeInMillis(); // 秒级时间戳 long timeStampS = timeStampMs / 1000; System.out.println("毫秒级时间戳:" + timeStampMs); System.out.println("秒级时间戳:" + timeStampS); } }
东八区运行结果:
毫秒级时间戳:1616475360000
秒级时间戳:1616475360
Python实现
import time import datetime YEAR = 2021 MONTH = 2 DAY = 23 HOUR = 12 MINUTE = 56 # 构造datetime对象,Python月份从1开始计数不需要偏移 dt = datetime.datetime(YEAR, MONTH, DAY, HOUR, MINUTE) # 秒级时间戳 time_stamp_s = int(time.mktime(dt.timetuple())) # 毫秒级时间戳 time_stamp_ms = time_stamp_s * 1000 print(f"秒级时间戳:{time_stamp_s}") print(f"毫秒级时间戳:{time_stamp_ms}")
JavaScript实现
const YEAR = 2021; const MONTH = 2; const DAY = 23; const HOUR = 12; const MINUTE = 56; // JS的Date类月份从0开始计数,需要做减1偏移 const date = new Date(YEAR, MONTH - 1, DAY, HOUR, MINUTE, 0); // 毫秒级时间戳 const timeStampMs = date.getTime(); // 秒级时间戳 const timeStampS = Math.floor(timeStampMs / 1000); console.log('毫秒级时间戳:', timeStampMs); console.log('秒级时间戳:', timeStampS);
内容的提问来源于stack exchange,提问作者Cornel Petrescu
相关产品推荐
相关产品推荐

