国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java獲取當天、當前月、當前年(今年)的開始和結束時間戳

BenCHou / 2530人閱讀

摘要:最近在做統計相關的功能的時候涉及到了獲取當天的開始和結束的時間戳當月和當年的開始結束時間戳,特此記錄,以作備忘。

最近在做統計相關的功能的時候涉及到了獲取當天的開始和結束的時間戳、當月和當年的開始結束時間戳,特此記錄,以作備忘。

相關代碼
package com.lingyejun.authenticator;

import java.time.Instant;
import java.time.LocalDateTime;
import java.time.ZoneId;
import java.util.Calendar;
import java.util.TimeZone;

public class CalendarAdjust {

    /**
     * 獲取指定某一天的開始時間戳
     *
     * @param timeStamp 毫秒級時間戳
     * @param timeZone  如 GMT+8:00
     * @return
     */
    public static Long getDailyStartTime(Long timeStamp, String timeZone) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeZone(TimeZone.getTimeZone(timeZone));
        calendar.setTimeInMillis(timeStamp);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }

    /**
     * 獲取指定某一天的結束時間戳
     *
     * @param timeStamp 毫秒級時間戳
     * @param timeZone  如 GMT+8:00
     * @return
     */
    public static Long getDailyEndTime(Long timeStamp, String timeZone) {
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeZone(TimeZone.getTimeZone(timeZone));
        calendar.setTimeInMillis(timeStamp);
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        return calendar.getTimeInMillis();
    }

    /**
     * 獲取當月開始時間戳
     *
     * @param timeStamp 毫秒級時間戳
     * @param timeZone  如 GMT+8:00
     * @return
     */
    public static Long getMonthStartTime(Long timeStamp, String timeZone) {
        Calendar calendar = Calendar.getInstance();// 獲取當前日期
        calendar.setTimeZone(TimeZone.getTimeZone(timeZone));
        calendar.setTimeInMillis(timeStamp);
        calendar.add(Calendar.YEAR, 0);
        calendar.add(Calendar.MONTH, 0);
        calendar.set(Calendar.DAY_OF_MONTH, 1);// 設置為1號,當前日期既為本月第一天
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }

    /**
     * 獲取當月的結束時間戳
     *
     * @param timeStamp 毫秒級時間戳
     * @param timeZone  如 GMT+8:00
     * @return
     */
    public static Long getMonthEndTime(Long timeStamp, String timeZone) {
        Calendar calendar = Calendar.getInstance();// 獲取當前日期
        calendar.setTimeZone(TimeZone.getTimeZone(timeZone));
        calendar.setTimeInMillis(timeStamp);
        calendar.add(Calendar.YEAR, 0);
        calendar.add(Calendar.MONTH, 0);
        calendar.set(Calendar.DAY_OF_MONTH, calendar.getActualMaximum(Calendar.DAY_OF_MONTH));// 獲取當前月最后一天
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        return calendar.getTimeInMillis();
    }

    /**
     * 獲取當年的開始時間戳
     *
     * @param timeStamp 毫秒級時間戳
     * @param timeZone  如 GMT+8:00
     * @return
     */
    public static Long getYearStartTime(Long timeStamp, String timeZone) {
        Calendar calendar = Calendar.getInstance();// 獲取當前日期
        calendar.setTimeZone(TimeZone.getTimeZone(timeZone));
        calendar.setTimeInMillis(timeStamp);
        calendar.add(Calendar.YEAR, 0);
        calendar.add(Calendar.DATE, 0);
        calendar.add(Calendar.MONTH, 0);
        calendar.set(Calendar.DAY_OF_YEAR, 1);
        calendar.set(Calendar.HOUR_OF_DAY, 0);
        calendar.set(Calendar.MINUTE, 0);
        calendar.set(Calendar.SECOND, 0);
        calendar.set(Calendar.MILLISECOND, 0);
        return calendar.getTimeInMillis();
    }

    /**
     * 獲取當年的最后時間戳
     *
     * @param timeStamp 毫秒級時間戳
     * @param timeZone  如 GMT+8:00
     * @return
     */
    public static Long getYearEndTime(Long timeStamp, String timeZone) {
        Calendar calendar = Calendar.getInstance();// 獲取當前日期
        calendar.setTimeZone(TimeZone.getTimeZone(timeZone));
        calendar.setTimeInMillis(timeStamp);
        int year = calendar.get(Calendar.YEAR);
        calendar.clear();
        calendar.set(Calendar.YEAR, year);
        calendar.set(Calendar.HOUR_OF_DAY, 23);
        calendar.set(Calendar.MINUTE, 59);
        calendar.set(Calendar.SECOND, 59);
        calendar.set(Calendar.MILLISECOND, 999);
        calendar.roll(Calendar.DAY_OF_YEAR, -1);
        return calendar.getTimeInMillis();
    }

    /**
     * 時間戳轉字符串
     *
     * @param timestamp 毫秒級時間戳
     * @param zoneId    如 GMT+8或UTC+08:00
     * @return
     */
    public static String timestampToStr(long timestamp, String zoneId) {
        ZoneId timezone = ZoneId.of(zoneId);
        LocalDateTime localDateTime = LocalDateTime.ofInstant(Instant.ofEpochMilli(timestamp), timezone);
        return localDateTime.toString();
    }

    public static void main(String[] args) {
        Long currentTime = System.currentTimeMillis();
        System.out.println("Current Time : " + currentTime + " = " + timestampToStr(currentTime, "GMT+8"));
        Long dailyStart = getDailyStartTime(currentTime, "GMT+8:00");
        Long dailyEnd = getDailyEndTime(currentTime, "GMT+8:00");
        Long monthStart = getMonthStartTime(currentTime, "GMT+8:00");
        Long monthEnd = getMonthEndTime(currentTime, "GMT+8:00");
        Long yearStart = getYearStartTime(currentTime, "GMT+8:00");
        Long yearEnd = getYearEndTime(currentTime, "GMT+8:00");

        System.out.println("Daily Start : " + dailyStart + " = " + timestampToStr(dailyStart, "GMT+8") + " Daily End : " + dailyEnd + " = " + timestampToStr(dailyEnd, "GMT+8"));
        System.out.println("Month Start : " + monthStart + " = " + timestampToStr(monthStart, "GMT+8") + " Month End : " + monthEnd + " = " + timestampToStr(monthEnd, "GMT+8"));
        System.out.println("Year Start : " + yearStart + " = " + timestampToStr(yearStart, "GMT+8") + " Year End : " + yearEnd + " = " + timestampToStr(yearEnd, "GMT+8"));
    }
}
效果

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/75787.html

相關文章

  • JS將時間轉換為剛剛、N分鐘前、今天幾點幾分、昨天幾點幾分等表示法

    方法一: 使用Javascript語言,將時間戳轉換為類似新浪微博的時間的表示方法。要求轉換規則:1分鐘以內顯示為:剛剛1小時以內顯示為:N分鐘前當天以內顯示為:今天 N點N分(如:今天 22:33)昨天時間顯示為:昨天 N點N分(如:昨天 10:15)當年以內顯示為:N月N日 N點N分(如:02月03日 09:33)今年以前顯示為:N年N月N日 N點N分(如:2000年09月18日 15:59)...

    DirtyMind 評論0 收藏0
  • 20 個案例教你在 Java 8 中如何處理日期時間?

    摘要:前言前面一篇文章寫了如何安全的使用里面介紹了如何處理日期時間,以及如何保證線程安全,及其介紹了在中的處理時間日期默認就線程安全的類。引入了全新的日期時間格式工具,線程安全而且使用方便。 前言 前面一篇文章寫了《SimpleDateFormat 如何安全的使用?》, 里面介紹了 SimpleDateFormat 如何處理日期/時間,以及如何保證線程安全,及其介紹了在 Java 8 中的處...

    Rango 評論0 收藏0
  • Java8新特性之日期處理

    摘要:處理日期日歷和時間的不足之處將設定為可變類型,以及的非線程安全使其應用非常受限。最完整的日期時間,包含時區和相對或格林威治的時差。獲取當前的日期中的用于表示當天日期。 簡介 伴隨 lambda表達式、streams 以及一系列小優化,Java 8 推出了全新的日期時間API。 Java處理日期、日歷和時間的不足之處:將 java.util.Date 設定為可變類型,以及 SimpleD...

    Airy 評論0 收藏0
  • Java時間類總結

    摘要:獲取當天是幾號獲取當天是星期幾獲取本月的第一天取本月最后一天是不是很贊提供時分秒不提供年月日,也是線程安全并且不可變類。樣例獲取當前的小時小時數加結果包含年月日時分秒,精確到納秒級別,同樣是線程安全并且不可變類。 java.util.Date 包含有年月日時分秒,精確到毫秒級別。官方解釋: // The class Date represents a specific instant ...

    coolpail 評論0 收藏0
  • python日期時間處理總結

    摘要:用了一段時間的開發項目,也是第一次用來開發項目,所有有許多相關的知識點需要總結,本文所介紹的的日期時間處理就是最近用到的,希望對各位有所幫助,也同時作為自己的筆記儲存。提供了等模塊用于處理日期和時間,較為常用的還是模塊。 用了一段時間的django開發web項目,也是第一次用python來開發項目,所有有許多相關的知識點需要總結,本文所介紹的python的日期時間處理就是最近用到的,希...

    DoINsiSt 評論0 收藏0

發表評論

0條評論

BenCHou

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<