Rumah > Java > javaTutorial > Bagaimana untuk menyelesaikan masalah perbezaan zon waktu apabila menanyakan pangkalan data springboot

Bagaimana untuk menyelesaikan masalah perbezaan zon waktu apabila menanyakan pangkalan data springboot

PHPz
Lepaskan: 2023-06-04 17:37:03
ke hadapan
1572 orang telah melayarinya

    Perbezaan zon waktu yang berlaku apabila menanyakan pangkalan data springboot

    Dalam projek baru-baru ini, berbilang sumber data telah digunakan untuk memindahkan data daripada perpustakaan MySQL ke perpustakaan mongo dan mendapati bahawa Akan ada perbezaan masa 8 jam antara data yang diambil dan data asal

    Akhirnya, saya akhirnya menyelesaikan masalah dan merekodkannya:

    Saya melihat dua. kaedah yang lebih praktikal dalam talian, kerana Disebabkan springboot yang digunakan, apa yang saya gunakan di sini adalah untuk mengubah suai aplikasi fail konfigurasi.yml Selain itu, kaedah lain boleh didapati dalam talian

    1 pangkalan data, kami menambah item

    &serverTimezone=GMT%2b8
    Salin selepas log masuk
    rrree

    Format asal sepatutnya seperti ini:

     primary:
          jdbc-url: jdbc:mysql://******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8
          username: ****
          password: *****
        secondary:
          jdbc-url: jdbc:mysql://*******:3306/***?useUnicode=true&characterEncoding=UTF8&zeroDateTimeBehavior=convertToNull&serverTimezone=GMT%2b8
          username: *****
          password: ********
    Salin selepas log masuk

    2 Tambah konfigurasi jackson terus ke fail konfigurasi but

    &serverTimezone=GMT+8 这里使用%2b替换 + 号
    Salin selepas log masuk

    Dengan cara ini , masa boleh diubah suai dengan jayanya, dan lain-lain Anda boleh menyemak kaedah

    springboot new Date() perbezaan zon masa ialah 8 jam

    1 Dalam persekitaran k8s, bandingkan masa dalam kod . Perbezaannya ialah 8 jam di bawah Date() baharu

    Semak zon waktu hos ialah zon waktu cst

    Gunakan kod java untuk menulis zon waktu pengawal dan mendapati ia ialah kod GMT

    Seperti berikut:

    #在application.yml中增加配置
    spring:
        jackson:
            time-zone: GMT+8
    Salin selepas log masuk

    Zon waktu keluaran ialah GMT, yang berbeza daripada mesin hos Jika anda tidak dapat mengendalikan operasi dan penyelenggaraan, anda perlu melakukannya diri sendiri

    Nampaknya zon waktu menjadi masalah -

    1 Tambah pelayan parameterTimezone=Asia/Shanghai ke pautan pangkalan data db

    2. Tambahkan skrip permulaan springboot -Duser.timezone=GMT+08

    3 konfigurasi global Jackson

    Calendar calendar = Calendar.getInstance();      
            System.out.println("目前时间:" + calendar.getTime());
            System.out.println("Calendar时区::" + calendar.getTimeZone().getID());
            System.out.println("user.timezone:" + System.getProperty("user.timezone"));
            System.out.println("user.country:" + System.getProperty("user.country"));
            System.out.println("默认时区:" + TimeZone.getDefault().getID());
    Salin selepas log masuk

    4 anotasi jackson

    Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah perbezaan zon waktu apabila menanyakan pangkalan data springboot. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

    Label berkaitan:
    sumber:yisu.com
    Kenyataan Laman Web ini
    Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
    Tutorial Popular
    Lagi>
    Muat turun terkini
    Lagi>
    kesan web
    Kod sumber laman web
    Bahan laman web
    Templat hujung hadapan