日期存儲
日期轉換成2進制都是一樣長的吧。
import java.util.Date;
public class D {
public static void main(String[] args) {
// 取到系統日期(精確到milliseconds)
long time = System.currentTimeMillis();
// long型轉2進制
String binaryString = Long.toBinaryString(time);
System.out.println(binaryString);
// 以下是驗證代碼
// 轉換回去
long time2 = Long.parseLong(binaryString, 2);
if (time == time2) {
System.out.println("轉換成功");
} else {
System.out.println("轉換失敗");
}
Date d = new Date(time2);
System.out.println(d);
}
}
『貳』 excel 以文本格式存儲的日期如何轉化為以日期格式存儲的日期
Excel 以文本格式存儲的日期如何轉化為以日期格式方法如下:
以Excel2007為例:
打開Excel,並輸入文本格式的日期如下圖:
『叄』 關於資料庫中日期的存儲
Unix時間戳(Unix timestamp)
定義為從格林威治時間1970年01月01日00時00分00秒起至現在的總秒數
應該是這個……
『肆』 像Excel那種,日期存儲方式,有什麼好處
日期的數值,是從1900年1月1號開始排起的,1900年1月1號是1,往後每增加一天就加1,比如1900年1月2號是2,1900年1月3號是3......直到今天(2018年8月17號)已經排到了43329了。
至於好處嘛,我覺得就是便於日期的各種運算,打個比方說,2018年8月17號過273天有個重要事要做,想知道是具體是哪一天,那就直接="2018/8/17"+273就得出來了,單元格設置為日期格式就可以了。
附加說明:
日期是每天為1累計往上加的,而時間是把1分成若乾等份來算的,比如每小時就是把1分成24份,每分鍾就是把1分成24份再分成60份,即1/24/60
『伍』 日期存儲到資料庫中的壓縮演算法
不知道你是用什麼語言寫:
下面是c#的代碼:DateTime.Now.ToShortDateString()
如果是別的日期形式你用:DateTime.Parse(DateTimestring).ToShortDateString()轉換成日期形式再存。
附上所有日期形式:
DateTime dt = DateTime.Now;
// Label1.Text = dt.ToString();//2005-11-5 13:21:25
// Label2.Text = dt.ToFileTime().ToString();//127756416859912816
// Label3.Text = dt.ToFileTimeUtc().ToString();//127756704859912816
// Label4.Text = dt.ToLocalTime().ToString();//2005-11-5 21:21:25
// Label5.Text = dt.ToLongDateString().ToString();//2005年11月5日
// Label6.Text = dt.ToLongTimeString().ToString();//13:21:25
// Label7.Text = dt.ToOADate().ToString();//38661.5565508218
// Label8.Text = dt.ToShortDateString().ToString();//2005-11-5
// Label9.Text = dt.ToShortTimeString().ToString();//13:21
// Label10.Text = dt.ToUniversalTime().ToString();//2005-11-5 5:21:25
// 2005-11-5 13:30:28.4412864
// Label1.Text = dt.Year.ToString();//2005
// Label2.Text = dt.Date.ToString();//2005-11-5 0:00:00
// Label3.Text = dt.DayOfWeek.ToString();//Saturday
// Label4.Text = dt.DayOfYear.ToString();//309
// Label5.Text = dt.Hour.ToString();//13
// Label6.Text = dt.Millisecond.ToString();//441
// Label7.Text = dt.Minute.ToString();//30
// Label8.Text = dt.Month.ToString();//11
// Label9.Text = dt.Second.ToString();//28
// Label10.Text = dt.Ticks.ToString();//632667942284412864
// Label11.Text = dt.TimeOfDay.ToString();//13:30:28.4412864
// Label1.Text = dt.ToString();//2005-11-5 13:47:04
// Label2.Text = dt.AddYears(1).ToString();//2006-11-5 13:47:04
// Label3.Text = dt.AddDays(1.1).ToString();//2005-11-6 16:11:04
// Label4.Text = dt.AddHours(1.1).ToString();//2005-11-5 14:53:04
// Label5.Text = dt.AddMilliseconds(1.1).ToString();//2005-11-5 13:47:04
// Label6.Text = dt.AddMonths(1).ToString();//2005-12-5 13:47:04
// Label7.Text = dt.AddSeconds(1.1).ToString();//2005-11-5 13:47:05
// Label8.Text = dt.AddMinutes(1.1).ToString();//2005-11-5 13:48:10
// Label9.Text = dt.AddTicks(1000).ToString();//2005-11-5 13:47:04
// Label10.Text = dt.CompareTo(dt).ToString();//0
//// Label11.Text = dt.Add(?).ToString();//問號為一個時間段
// Label1.Text = dt.Equals("2005-11-6 16:11:04").ToString();//False
// Label2.Text = dt.Equals(dt).ToString();//True
// Label3.Text = dt.GetHashCode().ToString();//1474088234
// Label4.Text = dt.GetType().ToString();//System.DateTime
// Label5.Text = dt.GetTypeCode().ToString();//DateTime
// Label1.Text = dt.GetDateTimeFormats('s')[0].ToString();//2005-11-05T14:06:25
// Label2.Text = dt.GetDateTimeFormats('t')[0].ToString();//14:06
// Label3.Text = dt.GetDateTimeFormats('y')[0].ToString();//2005年11月
// Label4.Text = dt.GetDateTimeFormats('D')[0].ToString();//2005年11月5日
// Label5.Text = dt.GetDateTimeFormats('D')[1].ToString();//2005 11 05
// Label6.Text = dt.GetDateTimeFormats('D')[2].ToString();//星期六 2005 11 05
// Label7.Text = dt.GetDateTimeFormats('D')[3].ToString();//星期六 2005年11月5日
// Label8.Text = dt.GetDateTimeFormats('M')[0].ToString();//11月5日
// Label9.Text = dt.GetDateTimeFormats('f')[0].ToString();//2005年11月5日 14:06
// Label10.Text = dt.GetDateTimeFormats('g')[0].ToString();//2005-11-5 14:06
// Label11.Text = dt.GetDateTimeFormats('r')[0].ToString();//Sat, 05 Nov 2005 14:06:25 GMT
Label1.Text = string.Format("{0:d}",dt);//2005-11-5
Label2.Text = string.Format("{0:D}",dt);//2005年11月5日
Label3.Text = string.Format("{0:f}",dt);//2005年11月5日 14:23
Label4.Text = string.Format("{0:F}",dt);//2005年11月5日 14:23:23
Label5.Text = string.Format("{0:g}",dt);//2005-11-5 14:23
Label6.Text = string.Format("{0:G}",dt);//2005-11-5 14:23:23
Label7.Text = string.Format("{0:M}",dt);//11月5日
Label8.Text = string.Format("{0:R}",dt);//Sat, 05 Nov 2005 14:23:23 GMT
Label9.Text = string.Format("{0:s}",dt);//2005-11-05T14:23:23
Label10.Text = string.Format("{0:t}",dt);//14:23
Label11.Text = string.Format("{0:T}",dt);//14:23:23
Label12.Text = string.Format("{0:u}",dt);//2005-11-05 14:23:23Z
Label13.Text = string.Format("{0:U}",dt);//2005年11月5日 6:23:23
Label14.Text = string.Format("{0:Y}",dt);//2005年11月
Label15.Text = string.Format("{0}",dt);//2005-11-5 14:23:23
Label16.Text = string.Format("{0:yyyyMMddHHmmssffff}",dt);
『陸』 日期的二進制存儲問題
這個東西是16進製得存儲,翻譯過來是176854127198721
是從格林威治時間1970年1月1日0點,到某個時間段得毫秒數,
有了這個數字,後面的問題任何編程語言都可以解決
『柒』 描述ExCeL中日期如何存儲的
Excel中日期本質上是一個數字,
數字1轉換格式為日期就變成1900/1/1
2就是1900/1/2
以此類推
今天2019/3/9就是43533
『捌』 C語言中存儲日期和時間的最好方法是哪一種
方法沒有最好,只有適不適合。
選擇合適的變數來存儲日期和時間是根據應用場景而定的。
C語言標准庫中提供了以下有關時間的函數:
time()函數可以得到一個從1900年1月1日0點0分0秒到目前的秒數
localtime()函數,將該整數轉換為一個時間結構體struct tm中。
ctime()和asctime()函數,將時間機器數據轉換成相應格式的字元串形式。
一般,日期和時間都是用於展示,這樣,用字元串變數存儲是最合適的方法:
chardatetime[32];
time_tt;
structtm*p;
t=time(NULL);
p=localtime(&t);
strcpy(datetime,asctime(p));
當需要計算兩個時間點之間的時間差時,用整型變數存儲時間更為方便:
time_tt1,t2;
t1=time(NULL);
...//dosomework
t2=time(NULL);
printf("difftimet1andt2=%dseconds ",t2-t1);
存儲在struct tm中的時間,更方便編程者按具體的要求格式去處理日期數據。
structtm{
inttm_sec;/*秒–取值區間為[0,59]*/
inttm_min;/*分-取值區間為[0,59]*/
inttm_hour;/*時-取值區間為[0,23]*/
inttm_mday;/*一個月中的日期-取值區間為[1,31]*/
inttm_mon;/*月份(從一月開始,0代表一月)-取值區間為[0,11]*/
inttm_year;/*年份,其值等於實際年份減去1900*/
inttm_wday;/*星期–取值區間為[0,6],其中0代表星期天,1代表星期一,以此類推*/
inttm_yday;/*從每年的1月1日開始的天數–取值區間為[0,365],其中0代表1月1日,1代表1月2日,以此類推*/
inttm_isdst;/*夏令時標識符,實行夏令時的時候,tm_isdst為正。不實行夏令時的進候,tm_isdst為0;不了解情況時,tm_isdst()為負。*/
};
『玖』 保存一個「日期/時間」型需要()個位元組的存儲空間 A.4 B.8 C.64 D.256
你應該規定所選語言實現,否則ABCD都是正確的。