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 的实现作为参考
我想将 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 的实现作为参考