Java 获取当天/前一天起始和结束时间,格林威治时间与北京时间转换?
Java获取当天的起始时间和结束时间- http://blog.csdn.net/leeyefang/article/details/45057105
java获取各种格式的时间,获取昨天明天日期,获取一天的开始结束时间- http://blog.csdn.net/ziluolanzhang/article/details/50717398
public static long todayEarlyMorningTimeStamp() {// 今天凌晨
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);// 今天开始是从凌晨0点开始
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
Date date = todayStart.getTime();
System.out.println("------------- 今天凌晨--------------" + date.getTime());
return date.getTime();
}
public static long yesterdayEarlyMorningTimeStamp() {// 昨天凌晨
long onedayTimeStamp = 24 * 60 * 60 * 1000;
System.out.println("------------- 昨天凌晨 --------------" + (todayEarlyMorningTimeStamp() - onedayTimeStamp));
return todayEarlyMorningTimeStamp() - onedayTimeStamp;
}
private static Date todayStart() {
System.out.println("------------- 今天开始时间 --------------");
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);// 今天开始是从凌晨0点开始
// todayStart.set(Calendar.HOUR, 0);
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
Date date = todayStart.getTime();
long timeStamp = date.getTime();
System.out.println("今天开始时间的时间戳timeStamp :" + timeStamp);
System.out.println("System.currentTimeMillis():" + System.currentTimeMillis());
System.out.println("todayStart.getTime():" + todayStart.getTime());
SimpleDateFormat format = new SimpleDateFormat();
System.out.println("todayStart.getTime() format:" + format.format(todayStart.getTime()));
return todayStart.getTime();
}
private static Date todayEnd() {
System.out.println("-------------- 今天结束时间 -------------");
Calendar todayEnd = Calendar.getInstance();
todayEnd.set(Calendar.HOUR_OF_DAY, 23);// 今天开始是从晚上24点结束
// todayEnd.set(Calendar.HOUR, 23);
todayEnd.set(Calendar.MINUTE, 59);
todayEnd.set(Calendar.SECOND, 59);
todayEnd.set(Calendar.MILLISECOND, 999);
System.out.println("todayEnd.getTime():" + todayEnd.getTime());
SimpleDateFormat format = new SimpleDateFormat();
// Date date2 = format.format(todayEnd.getTime();
System.out.println("todayEnd.getTime() format:" + format.format(todayEnd.getTime()));
return todayEnd.getTime();
}
private static void yesterday() {
System.out.println("------------昨天开始与结束时间---------------");
Date dNow = new Date(); // 当前时间
Date dBefore = new Date();
Calendar calendar = Calendar.getInstance(); // 得到日历
calendar.setTime(dNow);// 把当前时间赋给日历
calendar.add(Calendar.DAY_OF_MONTH, -1); // 设置为前一天
dBefore = calendar.getTime(); // 得到前一天的时间
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); // 设置时间格式
String defaultStartDate = sdf.format(dBefore); // 格式化前一天
defaultStartDate = defaultStartDate + " 00:00:00";
String defaultEndDate = defaultStartDate.substring(0, 10) + " 23:59:59";
System.out.println("前一天的起始时间是:" + defaultStartDate);
System.out.println("前一天的结束时间是:" + defaultEndDate);
}
public static void gregorianStartTime() {
Date date = new Date();// 取时间
// date.clearTime();
Calendar calendar = new GregorianCalendar();
calendar.setTime(date);
calendar.set(Calendar.HOUR, 0);
calendar.set(Calendar.MINUTE, 0);
calendar.set(Calendar.SECOND, 0);
calendar.set(Calendar.MILLISECOND, 0);
System.out.println("开始时间:" + calendar.getTime());
calendar.set(Calendar.HOUR, 23);
calendar.set(Calendar.MINUTE, 59);
calendar.set(Calendar.SECOND, 59);
calendar.set(Calendar.MILLISECOND, 999);
System.out.println("结束时间:" + calendar.getTime());
System.out.println("---------------------------");
System.out.println("当前时间:" + System.currentTimeMillis());
}
private static void get() {
SimpleDateFormat format = new SimpleDateFormat(" yyyy-MM-dd HH:mm:ss ");
String time = " 1970-01-06 11:45:55 ";// 注:改正后这里前后也加了空格
Date date = null;
try {
date = format.parse(time);
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
System.out.println("Format To times:" + date.getTime());
}
------------------------------------------------
/**
* 显示发布时间(发布时间是指文章第一次创建的时间,不是最近更新时间)的规则:
* 发布时间距离当前时间1小时内:20分钟前
* 发布时间距离当前时间超过1小时且在当天之内:5小时前
* 发布时间在当前日期的前1天: 昨天 12:30
* 其他情况显示日期:12-08
*
* @param publishTime
* @return
*/
public static String dateFormat(long publishTime) {
if (publishTime <= 0) {
return "";
}
if (publishTime - yesterdayEarlyMorningTimeStamp() < 0) {//新闻是在昨天之前发的
return formatDate(publishTime, "MM-dd");
} else {
if (publishTime - todayEarlyMorningTimeStamp() < 0) {//新闻是在昨天发的
return "昨天 " + formatDate(publishTime, "HH:mm");
} else {//新闻是在今天发的
long currentTime = System.currentTimeMillis();//当前时间戳
long oneHourTimeStamp = 60 * 60 * 1000;//一个小时的时间戳
if ((currentTime - publishTime) >= oneHourTimeStamp) {//今天之内,一小时之外
return (publishTime - todayEarlyMorningTimeStamp()) / oneHourTimeStamp + "小时前";
} else {//今天之内,一小时之内
return (currentTime - publishTime) / 1000 + "分钟前";
}
}
}
}
public static String formatDate(long timeStamp, String regularRule) {
SimpleDateFormat formatter = new SimpleDateFormat(regularRule);//yyyy-MM-dd HH:mm:ss
String dateString = formatter.format(timeStamp);
return dateString;
}
public static long todayEarlyMorningTimeStamp() {//今天凌晨
Calendar todayStart = Calendar.getInstance();
todayStart.set(Calendar.HOUR_OF_DAY, 0);//今天开始是从凌晨0点开始
todayStart.set(Calendar.MINUTE, 0);
todayStart.set(Calendar.SECOND, 0);
todayStart.set(Calendar.MILLISECOND, 0);
Date date = todayStart.getTime();
return date.getTime();
}
public static long yesterdayEarlyMorningTimeStamp() {//昨天凌晨
long onedayTimeStamp = 24 * 60 * 60 * 1000;//一天的时间戳
return todayEarlyMorningTimeStamp() - onedayTimeStamp;
}
-------------------
JAVA实现UTC时间转换成北京时间
UTCToCST("2017-11-27T03:16:03.944Z", "yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
public static void UTCToCST(String UTCStr, String format) throws ParseException {
Date date = null;
SimpleDateFormat sdf = new SimpleDateFormat(format);
date = sdf.parse(UTCStr);
System.out.println("UTC时间: " + date);
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
calendar.set(Calendar.HOUR, calendar.get(Calendar.HOUR) + 8);
//calendar.getTime() 返回的是Date类型,也可以使用calendar.getTimeInMillis()获取时间戳
System.out.println("北京时间: " + calendar.getTime());
}