IT技术博客大学习 共学习 共进步

五四陈透过PHP看JAVA系列:strtotime

五四陈科学院 2010-03-05 08:57:38 浏览 3,243 次

本系列主要总结PHP与JAVA之间的一些异同,给从PHP学JAVA或者是从JAVA学PHP的同学一点启发,五四陈科学院出品。

第一部分,先看PHP的Date/Tme函数

详细见:http://www.54chen.com/p/ref.datetime.html

今天要说的是其中的strtotime函数

http://www.54chen.com/p/function.strtotime.html

函数的功能:接受一个包含美国英语日期格式的字符串并尝试将其解析为 Unix 时间戳(自 January 1 1970 00:00:00 GMT 起的秒数)。

例子:

<?php
echo strtotime(”2010-3-3 3:3:3″);
?>

将得到结果:

1267585383

在PHP应用中,经常在需要记录时间的时候,使用Mysql的int(10)来保存这个 Unix 时间戳,并且时间的比较查找等操作,都用大于小于来进行。

第二部分,看JAVA对应的方法

try {
fromUnixTime = new java.text.SimpleDateFormat(”dd/MM/yyyy HH:mm:ss”).parse(”01/03/2010 08:00:00″).getTime();
fromUnixTime /= 1000;
} catch (ParseException e1) {
e1.printStackTrace();
}

看上去有点麻烦,不过因为java中操作mysql的jdbc对类型的要求是非常严格的,所以一般在java项目中,不使用int来代替datetime类型的字段。

第三部分,提升部分,反过来咋整(从Unix时间戳格式化为datetime)?

先说PHP:

<?php
echo date(”Y-m-d H:i:s”,1267585383);
?>

再说JAVA:

String date2 = new java.text.SimpleDateFormat(”dd/MM/yyyy HH:mm:ss”).format(new Date ((long)1267585383*1000));
System.out.println(date2);

注意java中的强转为long不能丢,否则计算后结果不正确。

建议继续学习

  1. Java技术路线 (阅读 7,642)
  2. Java应用运维 (阅读 5,224)
  3. Java陷阱(2010版) (阅读 4,001)
  4. Java 常量值修改后不起作用 (阅读 3,901)
  5. Java的那些事儿 (阅读 3,762)
  6. Java将Object对象转换为String的总结合集 (阅读 3,703)
  7. Java泛型简明教程 (阅读 3,663)
  8. Eclipse Xtend对Java说:我帮你瘦身 (阅读 3,463)
  9. php的strtotime在处理am/pm时的一个BUG (阅读 3,243)
  10. 通过JNI实现Java对C/C++的调用 (阅读 3,041)