Java从unix时间戳获取当前日期[重复]

Posted

技术标签:

【中文标题】Java从unix时间戳获取当前日期[重复]【英文标题】:Java get current day from unix timestamp [duplicate] 【发布时间】:2018-01-05 15:00:39 【问题描述】:

我想仅将 unix 时间戳转换为当前日期,例如当年当前日期的月份的当前日期,是否可以只使用数学,如 *、/ 或其他东西?

【问题讨论】:

当前日期在哪个时区,对于初学者来说? Instant.ofEpochSecond( 1501350790 ).atZone( ZoneId( "Pacific/Auckland" ) ).toLocalDate() 【参考方案1】:

简短的解决方案类似于

long epoch = 1501350790; // current unix time
int day = Integer.parseInt(new SimpleDateFormat("dd").format(new Date(epoch * 1000L)));

可以通过计算(*和/)得到这个结果,但没有简单的方法。可以参考java.util.GregorianCalendar的实现

【讨论】:

【参考方案2】:

您可以使用 SimpleDateFormat 来格式化您的日期:

long unixSeconds = 1372339860;
Date date = new Date(unixSeconds*1000L); // *1000 is to convert seconds to milliseconds
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss z"); // the format of your date
sdf.setTimeZone(TimeZone.getTimeZone("GMT-4")); // give a timezone reference for formating (see comment at the bottom
String formattedDate = sdf.format(date);
System.out.println(formattedDate);

您也可以将时间戳乘以 1000 将其转换为毫秒:

java.util.Date dateTime=new java.util.Date((long)timeStamp*1000);

做完就可以得到你想要的:

Calendar cal = Calendar.getInstance();
cal.setTime(dateTime);
int year = cal.get(Calendar.YEAR);
int month = cal.get(Calendar.MONTH); //here is what you need
int day = cal.get(Calendar.DAY_OF_MONTH);

【讨论】:

我明白了,但我只想要当天的输出,如果月份的日期是 29,那么我只想要输出 29,今年的当天也可以,比如210(2017-07-29) 刚刚更新了答案。看看它是否能解决你的问题。 仅供参考,这些麻烦的类现在是遗留的,被 java.time 类所取代。【参考方案3】:

您可以使用 java.util.Date 从 unix 时间戳计算日期 您需要将时间戳乘以 1000,因为 java 需要毫秒。您可以使用cal.get(Calendar.DAY_OF_MONTH) 函数打印日期。

import java.sql.Timestamp;
import java.util.Calendar;

public class MyFirstJavaProgram 
    public static void main(String []args) 
       long unixTimeStamp= System.currentTimeMillis() / 1000L;
       java.util.Date time=new java.util.Date((long)unixTimeStamp*1000);
       Calendar cal = Calendar.getInstance();
       // It's a good point better use cal because date-functions are deprecated
       cal.setTime(time);
       System.out.println(cal.get(Calendar.DAY_OF_MONTH));
    

还有什么问题请留言。

【讨论】:

或者理想情况下不要使用java.util.Datejava.util.Calendar - 使用更好的java.time.* API...

以上是关于Java从unix时间戳获取当前日期[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何利用PHP时间戳获取当前时间

Hive日期函数处理

php获取今天某个时间的时间戳的方法

如何获取当前的日期和时间

获取表示当前日期的纪元时间戳范围

PHP日期格式化