當前位置:首頁 » 北京知識 » date如何改為北京時間
擴展閱讀
楊柳青是天津什麼地方 2025-10-20 08:28:24
福州鼓樓哪裡學拉丁舞 2025-10-20 08:15:25

date如何改為北京時間

發布時間: 2022-06-19 14:57:44

Ⅰ php里date("H")得到的是格林尼治時間,怎麼轉為北京時間

首先你應該先取出報文中的時間數據, 這個數據是一個連續的字元串, 然後可以把時間轉化成可以直接運算的int型或long型, 運算原則是在GPS取得的時間上+8, 北京時間是+8時區, 或者直接操作緩沖區中的字元串來進行運算也是可以的!給你舉個例子吧:
比如:
char UTCbuf[] = {};//將取得的時間數據放置其中
char YY[2] = {} ; //年
char mm[2] = {} ; //月
char DD[2] = {} ; //日
char HH[2] = {} ; //小時
然後通過取UTCbuf中的小時轉成int型, 再+8, 取小時可以用指針操作UTCbuf, 效果最好, 也可以用類似於strncpy(HH, UTCbuf, 2);的函數, 當然要引用"string.h"頭文件, 因為時區的差別會導致日期的差別., 這個具體運算就不多說了, 原則是咱們比UTC早8個小時轉換日期!!!不明白追問吧, 對你有幫助請選為最佳答案, 謝謝了!

Ⅱ Win10怎麼校準北京時間

一、首先要弄清幾個概念:
1. 系統時間與硬體時間
系統時間: 一般說來就是我們執行 date 命令看到的時間,linux系統下所有的時間調用(除了直接訪問硬體時間的命令)都是使用的這個時間。
硬體時間: 主板上BIOS中的時間,由主板電池供電來維持運行,系統開機時要讀取這個時間,並根據它來設定系統時間(注意:系統啟動時根據硬體時間設定系統時間的過程可能存在時區換算,這要視具體的系統及相關設置而定)。
2. UTC時間與本地時間
UTC時間:Coordinated Universal 8 e2 i( H7 t0 ^/ ^Time 世界協調時間(又稱世界標准時間、世界統一時間),在一般精度要求下,它與GMT(Greenwich Mean Time,格林威治標准時間)是一樣的,其實也就是說 GMTUTC,但 UTC 是以原子鍾校準的,更精確。
本地時間:由於處在不同的時區,本地時間一般與UTC是不同的,換算方法就是
本地時間 = UTC + 時區 或 UTC = 本地時間 - 時區
時區東為正,西為負,例如在中國,本地時間都使用北京時間,在linux上顯示就是 CST(China Standard Time,中國標准時,注意美國的中部標准時Central Standard Time也縮寫為CST,與這里的CST不是一回事!),時區為東八區,也就是 +8 區,所以 CST=UTC+(+8小時) 或 UTC=CST-(+8小時)。
二、時間命令
1. 系統時間 date
直接調用 date,得到的是本地時間。如果想得到UTC時間的話,使用 date -u.
[12-01 19:07 ~]$ date
2009年 12月 07日 星期一 14:22:20 CST
[12-01 19:07 ~]$ date -u
2009年 12月 07日 星期一 06:22:22 UTC
2. 硬體時間 /sbin/hwclock
直接調用 /sbin/hwclock 顯示的時間就是 BIOS 中的時間嗎?未必!這要看 /etc/sysconfig/clock 中是否啟用了UTC,如果啟用了UTC(UTC=true),顯示的其實是經過時區換算的時間而不是BIOS中真正的時間,如果加上 --localtime 選項,則得到的總是 BIOS 中實際的時間。
[12-01 19:07 ~]# hwclock
2009年12月07日 星期一 14時28分43秒 -0.611463 seconds
[12-01 19:07 ~]# hwclock --utc
2009年12月07日 星期一 14時28分46秒 -0.594189 seconds
[12-01 19:07 ~]# hwclock --localtime
2009年12月07日 星期一 06時28分50秒 -0.063875 seconds
3. /etc/localtime
這個文件用來設置系統的時區,將 /usr/share/zoneinfo/ 中相應文件拷貝到/etc下並重命名為 localtime 即可修改時區設置,而且這種修改對 date 命令是及時生效的。不論是 date 還是 hwclock 都會用到這個文件,會根據這個文件的時區設置來進行UTC和本地之間之間的換算
4. /etc/sysconfig/clock
這個文件只對 hwclock 有效,而且似乎是只在系統啟動和關閉的時候才有用,比如修改了其中的 UTC=true 到 UTC=false 的前後,執行 hwclock (--utc, 或 --localtime) 都沒有變化,要重啟系統後才生效。註:如果設置 UTC=false 並重啟系統後,執行一些命令結果如下:
date 2009年 12月 07日 星期一 19:26:29 CST
date -u 2009年 12月 07日 星期一 11:26:29 UTC
hwclock 2009年12月07日 星期一 19時26分30秒 -0.442668 seconds
hwclock --utc 2009年12月08日 星期二 03時26分31秒 -0.999091 seconds
hwclock --localtime 2009年12月07日 星期一 19時26分32秒 -0.999217 seconds
可見,如果不使用UTC,BIOS時間(紅色部分)就是系統本地時間,而且注意這時執行 hwclock --utc 得到的結果沒有任何意義,因為這里我們已經禁用了UTC,而且也明顯不符合本地時間=UTC+時區的關系。
三、linux與windows雙系統間的時間同步
系統啟動和關閉時,硬體時間與系統時間之間的同步有兩種方式(假設在中國,用CST代表本地時間):
方式A: 使用UTC(對linux就是 /etc/sysconfig/clock 中 UTC=true)
開機: BIOS-------UTC(將BIOS中的時間看成是UTC)------(時區變化)-----CST
關機: CST -------(時區變化)-----UTC-------存儲到------BIOS
方式B: 不使用UTC(對linux就是 /etc/sysconfig/clock 中 UTC=false)
開機: BIOS---------------------CST(將BIOS中的時間看成是CST)
關機: CST ---------存儲到------BIOS
通過設定 /etc/sysconfig/clock,linux可以支持這兩種方式,然而windows只支持方式B(至少是默認支持B,而我不知道怎麼能讓它支 持A),那麼在雙系統情況下,如果linux設成A方式,那麼在linux與windows系統切換時一定會造成時間混亂的,解決辦法就是將linux中 的UTC禁用,也設成B方式就可以了。
註:可以通過 hwclock --hctosys 來利用硬體時間來設置系統時間(注意不是簡單的復制BIOS中的時間為系統時間,要看是否使用UTC,如果使用的話則要做時區換算),通過 hwclock --systohc 來根據系統時間設置硬體時間(也要看是否啟用UTC來決定是否做時區換算)。
總之,不論使用 --systohc 還是 --hctosys,同步後直接運行不帶參數的 hwclock 得到的時間與直接運行 date 得到的時間應該一致,這個時間是否就是BIOS中的時間(hwclock --localtime)那就不一定了,如果啟用了UTC就不是,沒啟用UTC就是。
而且還要注意:在系統中手動使用 hwclock hwclock --set --date='yyyy-mm-dd' 來設置BIOS時間只在系統運行時有效,因為當系統關閉時,還會按設定好的方式根據系統時間來重設BIOS時間的,於是手動的設置便被覆蓋掉了。
Linux時鍾分為系統時鍾(System Clock)和硬體(Real Time Clock,簡稱RTC)時鍾。系統時鍾是指當前Linux Kernel中的時鍾,而硬體時鍾則是主板上由電池供電的時鍾,這個硬體時鍾可以在BIOS中進行設置。當Linux啟動時,硬體時鍾會去讀取系統時鍾的設置,然後系統時鍾就會獨立於硬體運作。
Linux中的所有命令(包括函數)都是採用的系統時鍾設置。在Linux中,用於時鍾查看和設置的命令主要有date、hwclock和clock.其中,clock和hwclock用法相近,只用一個就行,只不過clock命令除了支持x86硬體體系外,還支持Alpha硬體體系。

Ⅲ linux里date命令顯示的時間和自己的不對。說是cst,什麼意思,是時區問題嗎。

CST代表


  1. ChinaStandardTime

  2. CentralStandardTime


如果是第一種情況,就不需要更改時區。因為中國標准時間就是北京時間。


如果是第二種情況,使用的就是美國中部時間,需要修改時區。


不過我個人認為,你說的時間不一樣,不一定是時區問題。也有可能是你啟用了UTC導致的。


如果你使用了UTC,那麼你BIOS裡面的時間,就是UTC 0的時間。簡言之,從北京時間中減去8個小時即可。


我的機器使用的就是UTC。

date 命令,使用不同參數,顯示出不同結果,使用-u 後,顯示出的時間就是UTC時間。


Ⅳ Date date = new Date(); system.out.println(date); 列印的是格林威治時間,怎麼改成北京時間。

SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
String dateToStr = sdf.format(date);
System.out.println(dateToStr);

或者用一個過時的方法 date.toLocaleString()

Ⅳ 如何調整linux的時間為北京時間

date:顯示日期與時間
語法:date [參數] [顯示時間格式]
-d:顯示由datestr描述的日期
-s:設置datestr描述的日期
-u:顯示或設置通用時間

列如:
date –s 09:16:00 //設置時間為上午9點16分
date –s 20130513 //設置時間為2013年5月13日0點0分0秒

一般是直接這么改時間的。

Ⅵ java中如何實現時間戳和北京時間的互換

public static void main(String[] args) {
long times = 1386665666777L;
Date date = new Date(times);
try {
SimpleDateFormat ss = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
System.out.println(ss.format(date));
} catch (Exception e) {
e.printStackTrace();
}
}

Ⅶ 如何用date修改系統時間

輸入date 按回車根據提示輸入 年月日 ,修改 時分秒 用 time 按回車 根據提示 修改

Ⅷ excel時間,將世界時改為北京時,如將 04/01 00:00 改為 04/01 08:00,下圖中C列變為D列

D2輸入

=TEXT(DATE(LEFT(C2,4),MID(C2,5,2),MID(C2,7,2))+RIGHT(C2)/24+1/3,"mm/dd hh:mm")


Ⅸ Date類型的對象怎麼轉化為Calendar類型

Date類在JDK1.0中,Date類是唯一的一個代表時間的類,但是由於Date類不便於實現國際化,所以從JDK1.1版本開始,推薦使用Calendar類進行時間和日期處理。這里簡單介紹一下Date類的使用。
1、使用Date類代表當前系統時間
Date d = new Date();
System.out.println(d);
使用Date類的默認構造方法創建出的對象就代表當前時間,由於Date類覆蓋了toString方法,所以可以直接輸出Date類型的對象,顯示的結果如下:
Sun Mar 08 16:35:58 CST 2009
在該格式中,Sun代表Sunday(周日),Mar代表March(三月),08代表8號,CST代表China Standard Time(中國標准時間,也就是北京時間(東八區))。
2、使用Date類代表指定的時間
Date d1 = new Date(2009-1900,3-1,9);
System.out.println(d1);
使用帶參數的構造方法,可以構造指定日期的Date類對象,Date類中年份的參數應該是實際需要代表的年份減去1900,實際需要代表的月份減去1以後的值。例如上面的示例代碼代表就是2009年3月9號。
實際代表具體的年月日時分秒的日期對象,和這個類似。
3、獲得Date對象中的信息
Date d2 = new Date();
//年份
int year = d2.getYear() + 1900;
//月份
int month = d2.getMonth() + 1;
//日期
int date = d2.getDate();
//小時
int hour = d2.getHours();
//分鍾
int minute = d2.getMinutes();
//秒
int second = d2.getSeconds();
//星期幾
int day = d2.getDay();
System.out.println("年份:" + year);
System.out.println("月份:" + month);
System.out.println("日期:" + date);
System.out.println("小時:" + hour);
System.out.println("分鍾:" + minute);
System.out.println("秒:" + second);
System.out.println("星期:" + day);
使用Date類中對應的get方法,可以獲得Date類對象中相關的信息,需要注意的是使用getYear獲得是Date對象中年份減去1900以後的值,所以需要顯示對應的年份則需要在返回值的基礎上加上1900,月份類似。在Date類中還提供了getDay方法,用於獲得Date對象代表的時間是星期幾,Date類規定周日是0,周一是1,周二是2,後續的依次類推。
4、Date對象和相對時間之間的互轉
Date d3 = new Date(2009-1900,3-1,10);
long time = 1290876532190L;
//將Date類的對象轉換為相對時間
long t = d3.getTime();
System.out.println(t);
//將相對時間轉換為Date類的對象
Date d4 = new Date(time);
System.out.println(d4);
使用Date對象中的getTime方法,可以將Date類的對象轉換為相對時間,使用Date類的構造方法,可以將相對時間轉換為Date類的對象。經過轉換以後,既方便了時間的計算,也使時間顯示比較直觀了。
Calendar類
從JDK1.1版本開始,在處理日期和時間時,系統推薦使用Calendar類進行實現。在設計上,Calendar類的功能要比Date類強大很多,而且在實現方式上也比Date類要復雜一些,下面就介紹一下Calendar類的使用。
Calendar類是一個抽象類,在實際使用時實現特定的子類的對象,創建對象的過程對程序員來說是透明的,只需要使用getInstance方法創建即可。
1、使用Calendar類代表當前時間
Calendar c = Calendar.getInstance();
由於Calendar類是抽象類,且Calendar類的構造方法是protected的,所以無法使用Calendar類的構造方法來創建對象,API中提供了getInstance方法用來創建對象。
使用該方法獲得的Calendar對象就代表當前的系統時間,由於Calendar類toString實現的沒有Date類那麼直觀,所以直接輸出Calendar類的對象意義不大。
2、使用Calendar類代表指定的時間
Calendar c1 = Calendar.getInstance();
c1.set(2009, 3 - 1, 9);
使用Calendar類代表特定的時間,需要首先創建一個Calendar的對象,然後再設定該對象中的年月日參數來完成。
set方法的聲明為:
public final void set(int year,int month,int date)
以上示例代碼設置的時間為2009年3月9日,其參數的結構和Date類不一樣。Calendar類中年份的數值直接書寫,月份的值為實際的月份值減1,日期的值就是實際的日期值。
如果只設定某個欄位,例如日期的值,則可以使用如下set方法:
public void set(int field,int value)
在該方法中,參數field代表要設置的欄位的類型,常見類型如下:
Calendar.YEAR——年份
Calendar.MONTH——月份
Calendar.DATE——日期
Calendar.DAY_OF_MONTH——日期,和上面的欄位完全相同
Calendar.HOUR——12小時制的小時數
Calendar.HOUR_OF_DAY——24小時制的小時數
Calendar.MINUTE——分鍾
Calendar.SECOND——秒
Calendar.DAY_OF_WEEK——星期幾
後續的參數value代表,設置成的值。例如:
c1.set(Calendar.DATE,10);
該代碼的作用是將c1對象代表的時間中日期設置為10號,其它所有的數值會被重新計算,例如星期幾以及對應的相對時間數值等。
3、獲得Calendar類中的信息
Calendar c2 = Calendar.getInstance();
//年份
int year = c2.get(Calendar.YEAR);
//月份
int month = c2.get(Calendar.MONTH) + 1;
//日期
int date = c2.get(Calendar.DATE);
//小時
int hour = c2.get(Calendar.HOUR_OF_DAY);
//分鍾
int minute = c2.get(Calendar.MINUTE);
//秒
int second = c2.get(Calendar.SECOND);
//星期幾
int day = c2.get(Calendar.DAY_OF_WEEK);
System.out.println("年份:" + year);
System.out.println("月份:" + month);
System.out.println("日期:" + date);
System.out.println("小時:" + hour);
System.out.println("分鍾:" + minute);
System.out.println("秒:" + second);
System.out.println("星期:" + day);
使用Calendar類中的get方法可以獲得Calendar對象中對應的信息,get方法的聲明如下:
public int get(int field)
其中參數field代表需要獲得的欄位的值,欄位說明和上面的set方法保持一致。需要說明的是,獲得的月份為實際的月份值減1,獲得的星期的值和Date類不一樣。在Calendar類中,周日是1,周一是2,周二是3,依次類推。
4、其它方法說明
其實Calendar類中還提供了很多其它有用的方法,下面簡單的介紹幾個常見方法的使用。
a、add方法
public abstract void add(int field,int amount)
該方法的作用是在Calendar對象中的某個欄位上增加或減少一定的數值,增加是amount的值為正,減少時amount的值為負。
例如在計算一下當前時間100天以後的日期,代碼如下:
Calendar c3 = Calendar.getInstance();
c3.add(Calendar.DATE, 100);
int year1 = c3.get(Calendar.YEAR);
//月份
int month1 = c3.get(Calendar.MONTH) + 1;
//日期
int date1 = c3.get(Calendar.DATE);
System.out.println(year1 + "年" + month1 + "月" + date1 + "日");
這里add方法是指在c3對象的Calendar.DATE,也就是日期欄位上增加100,類內部會重新計算該日期對象中其它各欄位的值,從而獲得100天以後的日期,例如程序的輸出結果可能為:
2009年6月17日
b、after方法
public boolean after(Object when)
該方法的作用是判斷當前日期對象是否在when對象的後面,如果在when對象的後面則返回true,否則返回false。例如:
Calendar c4 = Calendar.getInstance();
c4.set(2009, 10 - 1, 10);
Calendar c5 = Calendar.getInstance();
c5.set(2010, 10 - 1, 10);
boolean b = c5.after(c4);
System.out.println(b);
在該示例代碼中對象c4代表的時間是2009年10月10號,對象c5代表的時間是2010年10月10號,則對象c5代表的日期在c4代表的日期之後,所以after方法的返回值是true。
另外一個類似的方法是before,該方法是判斷當前日期對象是否位於另外一個日期對象之前。
c、getTime方法
public final Date getTime()
該方法的作用是將Calendar類型的對象轉換為對應的Date類對象,兩者代表相同的時間點。
類似的方法是setTime,該方法的作用是將Date對象轉換為對應的Calendar對象,該方法的聲明如下:
public final void setTime(Date date)
轉換的示例代碼如下:
Date d = new Date();
Calendar c6 = Calendar.getInstance();
//Calendar類型的對象轉換為Date對象
Date d1 = c6.getTime();
//Date類型的對象轉換為Calendar對象
Calendar c7 = Calendar.getInstance();
c7.setTime(d);
5、Calendar對象和相對時間之間的互轉
Calendar c8 = Calendar.getInstance();
long t = 1252785271098L;
//將Calendar對象轉換為相對時間
long t1 = c8.getTimeInMillis();
//將相對時間轉換為Calendar對象
Calendar c9 = Calendar.getInstance();
c9.setTimeInMillis(t1);
在轉換時,使用Calendar類中的getTimeInMillis方法可以將Calendar對象轉換為相對時間。在將相對時間轉換為Calendar對象時,首先創建一個Calendar對象,然後再使用Calendar類的setTimeInMillis方法設置時間即可。
應用示例
下面以兩個簡單的示例介紹時間和日期處理的基本使用。
1、計算兩個日期之間相差的天數
例如計算2010年4月1號和2009年3月11號之間相差的天數,則可以使用時間和日期處理進行計算。
該程序實現的原理為:首先代表兩個特定的時間點,這里使用Calendar的對象進行代表,然後將兩個時間點轉換為對應的相對時間,求兩個時間點相對時間的差值,然後除以1天的毫秒數(24小時X60分鍾X60秒X1000毫秒)即可獲得對應的天數。實現該示例的完整代碼如下:
import java.util.*;
/**
* 計算兩個日期之間相差的天數
*/
public class DateExample1 {
public static void main(String[] args) {
//設置兩個日期
//日期:2009年3月11號
Calendar c1 = Calendar.getInstance();
c1.set(2009, 3 - 1, 11);
//日期:2010年4月1號
Calendar c2 = Calendar.getInstance();
c2.set(2010, 4 - 1, 1);
//轉換為相對時間
long t1 = c1.getTimeInMillis();
long t2 = c2.getTimeInMillis();
//計算天數
long days = (t2 - t1)/(24 * 60 * 60 * 1000);
System.out.println(days);
}
}
2、輸出當前月的月歷
該示例的功能是輸出當前系統時間所在月的日歷,例如當前系統時間是2009年3月10日,則輸出2009年3月的日歷。
該程序實現的原理為:首先獲得該月1號是星期幾,然後獲得該月的天數,最後使用流程式控制制實現按照日歷的格式進行輸出即可。即如果1號是星期一,則列印一個單位的空格,如果1號是星期二,則列印兩個單位的空格,依次類推。列印完星期六的日期以後,進行換行。實現該示例的完整代碼如下:
import java.util.*;
/**
* 輸出當前月的日歷
*/
public class DateExample2{
public static void main(String[] args){
//獲得當前時間
Calendar c = Calendar.getInstance();
//設置代表的日期為1號
c.set(Calendar.DATE,1);
//獲得1號是星期幾
int start = c.get(Calendar.DAY_OF_WEEK);
//獲得當前月的最大日期數
int maxDay = c.getActualMaximum(Calendar.DATE);

//輸出標題
System.out.println("星期日 星期一 星期二 星期三 星期四 星期五 星期六");
//輸出開始的空格
for(int i = 1;i < start;i++){
System.out.print(" ");
}
//輸出該月中的所有日期
for(int i = 1;i <= maxDay;i++){
//輸出日期數字
System.out.print(" " + i);
//輸出分隔空格
System.out.print(" ");
if(i < 10){
System.out.print(' ');
}
//判斷是否換行
if((start + i - 1) % 7 == 0){
System.out.println();
}
}
//換行
System.out.println();

Ⅹ 如何用date將時間戳轉換為時間格式

方法和操作步驟如下:

1、第一步,需要根據圖示代碼創建HTML文檔,並創建JS標簽,如下圖所示,然後進入下一步。