时间戳问题(格林威治和北京时间)

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());
    }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值