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.Date
和java.util.Calendar
- 使用更好的java.time.*
API...以上是关于Java从unix时间戳获取当前日期[重复]的主要内容,如果未能解决你的问题,请参考以下文章