Java 从 unix 时间戳获取当前日期

Java get current day from unix timestamp

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

您可以使用 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);

您可以使用 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));
    }
}

还有什么问题请留言。

简短的解决方案类似于

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

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