当前位置:首页 » 存储配置 » 日期存储

日期存储

发布时间: 2022-02-04 20:17:08

‘壹’ 日期时间压缩存储格式

日期转换成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为例:

  1. 打开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语言标准库中提供了以下有关时间的函数:

  1. time()函数可以得到一个从1900年1月1日0点0分0秒到目前的秒数

  2. localtime()函数,将该整数转换为一个时间结构体struct tm中。

  3. 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都是正确的。

热点内容
zynqsdk修改编译选项 发布:2025-01-21 09:22:30 浏览:874
存储器部件教学实验 发布:2025-01-21 09:14:06 浏览:178
php安装memcached扩展 发布:2025-01-21 09:07:06 浏览:545
手机缓存视频到电脑上 发布:2025-01-21 09:07:02 浏览:977
如果知道服务器ip有什么风险 发布:2025-01-21 09:06:58 浏览:524
在压缩曲线 发布:2025-01-21 09:05:31 浏览:909
华山算法 发布:2025-01-21 08:44:48 浏览:366
如何在微信上再设置一个密码 发布:2025-01-21 08:44:39 浏览:731
浙江服务器搭建云主机 发布:2025-01-21 08:41:38 浏览:452
光遇和王者荣耀哪个需要的配置高 发布:2025-01-21 08:40:28 浏览:13