问题
之前遇到一个问题,直接使用Python的
1 | time.time() |
获取到的时间戳是float类型的(有N位的小数点),在Java中就没法使用(Java中的java.util.Date可以使用Long进行初始化.但是不能用float).于是只能在网上找相应的转换方法.今天总算找到了一个.贴在下面.(需求是服务器端使用Python,而客户端使用Java.)
代码
Python部分:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | #/usr/bin/env python3 #!-*-coding=utf-8-*- ''' 将当前时间转换成时间戳(int),供其它语言使用. ''' import time import datetime if __name__ == '__main__': print(str(int(time.mktime(datetime.datetime.now().timetuple()))*1000)) #上面的程序输出 1445224517000 |
Java或其它语言可以这样解析:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | import java.text.SimpleDateFormat; import java.util.Date; /** * 格式化Python获取到的时间戳. * */ public class Main { public static void main(String[] args) { System.out.println("Java时间戳:"+System.currentTimeMillis()); String datetimes = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date(1445224517000L)); System.out.println("格式化后的Python时间戳:"+datetimes); } } /* 上面的程序输出 */ 1445224530620 2015-10-19 11:15:17 |
从百度点进来的,支持一下