这篇文章给大家聊聊关于时间api,以及日历api对应的知识点,希望对各位有所帮助,不要忘了收藏本站哦。
本文目录
一、文件的修改时间、创建时间、访问时间分别是
1、创建时间是指文件信息之一次出现在当前硬盘上的时间;
2、修改时间是指文件最近一次被保存的时间;
3、访问时间是指最近一次文件夹中的任意一个子文件被保存的时间;
4、三者相互独立,且能利用软件修改。
5、正常情况下,在一台电脑保存过一个文件,再用U盘复制到另一台电脑上时,就会出现后面那台电脑文件修改时间早于创建时间的情况。而访问时间是指文件夹中某个文件被保存的时间或文件夹的创建时间。文件的访问时间一般没有意义。
6、但是也必须明白,这三个时间是可以利用软件任意修改的。可以使用Windows API修改这三种时间,这三种时间为64位时间系统,但是系统资源管理器只能显示其中32位的部分。如果你将时间设置为早于1900年1月1日,资源管理器这一栏会显示空白。但是你仍然可以用API读取到你之前设定好的时间。文件修改时间是Windows系统和Linux系统都有的,所以Java中也有提供改变文件修改时间的函数。但Java API没有改变创建时间和访问时间的函数。
7、如果使用文件内存映射打开文件并保存,文件的三个时间都不会改变。因为文件内存映射绕开了部分的文件管理机制,文件的时间更新也被绕开了。
二、时间的API函数
Declare Sub GetSYSTEMTIME Lib"kernel32" Alias"GetSystemTime"(lpSystemTime As SYSTEMTIME)
说明:在一个SYSTEMTIME中载入当前系统时间,这个时间采用的是“协同世界时间”(即UTC,也叫做GMT)格式
参数类型及说明:lpSystemTime SYSTEMTIME,随同当前时间载入的结构
dayofweek: word;--星期,0=星期日,1=星期一
type LPSYSTEMTIME is access SYSTEMTIME;
procedure GetSystemTime(SYSTIME:LPSYSTEMTIME);
function GetSystemTime(SYSTIME:LPSYSTEMTIME) return integer;
pragma import(stdcall,GetSystemTime,"GetSystemTime");
(1)参数SYSTIME必须首先分配内存空间,否则引起PROGRAM_ERROR。
(2)该函数获取格林威治标准时间。
CTime time= CTime::GetCurrentTime();///构造CTime对象
int m_nYear= time.GetYear();///年
int m_nMonth= time.GetMonth();///月
int m_nDay= time.GetDay();///日
int m_nHour= time.GetHour();///小时
int m_nMinute= time.GetMinute();///分钟
int m_nSecond= time.GetSecond();///秒
三、什么是java时间API
1、在我们开发中,对于任何操作,信息中时间是非常重要的一点,我们可以根据时间判断发生的时间,时间可以记录非常重要的信息;
2、在Java中,专门给我们提供了处理时间的API,根据Java封装的时间类,我们可以很方便的操作时间信息;
3、在处理时间的时候,有个概念我们经常会用到,就是时间戳,时间戳表示的是从1970年01月01日00时00分00秒起至现在的总毫秒数,我们可以将时间戳与时间进行随意的替换;
4、Java中处理时间的类是java.util.Date,这个类有常用的两个构造 *** ,一个是无参的获取的当前时间的对象,一个是出入一个时间戳,获取该时间戳对应的时间,JDK中这个类还提供了一些其他的构造 *** ,比如传入年月日等多个参数获取对应的时间,但是这些构造 *** JDK中已经不建议使用了,需要注意的是,使用年月日参数(过时的构造 *** )创建对象的时候,传入的年的参数需要减去1900,因为JDK中默认处理将年份增加了1900;
5、Java中还提供了一个类SimpleDateFormat可以方便我们将Date与字符串进行转换,Date类中重写了toString *** ,所以当打印date的时候,会按照重写的格式进行打印,但是有时候我们需要定义自己的格式进行输入输出,这时候就可以使用SimpleDateFormat类来进行自定义;
6、创建SimpleDateFormat对象的时候,需要传入一个参数,我们可以按照自己想要的格式进行编写,例如”yyyy-MM-dd hh:mm:ss:SSS”,这样输出的格式就会是年-月-日时:分:秒;我们可以随意调整打印的顺序与格式;其中yyyy表示年份,MM表示月份(大写),dd表示日期,hh表示小时,mm表示分钟(小写),ss表示秒(小写),SS表示毫秒(大写);除了这些格式外,还可以打印到时区,周几,一周第几天等信息;
7、除了可以将时间对象转换成字符串,SimpleDateFormat也可以将字符串转按照相应的格式成对应的时间;
四、如何处理日期和时间,包括 DST
从 UTC时间转换为本地时间可被视为应用两个偏移量。之一个是时区偏移量,第二个 DST偏移量。因此,本地时间有效地是 UTC时间加上一个时区偏移量,以及任何可用的 DST偏移量。时区偏移量是相当简单。该计算机配置特定的时间区域,并且该时区包含从 UTC偏移量。要确定是否应该应用 DST偏移量是更复杂。此活动依赖复杂和动态的多个规则。
DST 2007将最近更改这些复杂的 DST规则。启动 2007,在美国采用新的开始日期和新的结束日期 DST。此外,是很常见的其他国家/地区和 *** 定期更改开始日期和结束日期 DST时区受其管理的。下面一节介绍开发人员相关的产品上的 DST 2007更改的效果。
Windows Update和 Microsoft Update,更新可用,使 Windows正确应用更改为 DST 2007和以下的年份。应用这些更新后,Windows正确地计算从 UTC时间为本地时间当前的偏移为计算机通过 DST。偏移量在文章 API和 *** 与时间相关 API包括偏移量。
有关详细信息,单击下面的文章编号,以查看 Microsoft知识库中的相应:
942763为 Microsoft Windows操作系统的 2007年 12月累积时区更新
CRT还执行日期转换和时间转换。因此,CRT也必须更新以包括新的 DST 2007规则。 CRT执行自己的时间处理只有 TZ环境变量设置时或基本的操作系统 API时调用失败时。更新均可为每个 Microsoft Visual Studio版本中附带在 CRTs和还在 CRTs附带 Windows的。这些更新启用继续正确处理在美国时区中的 DST转换 CRT。
.NET Framework依赖于基本的操作系统的系统调用。因此,.NET Framework的行为反映基础操作系统的状态。要求没有单独的更新。
Visual Studio.NET IDE包括 2002、 2003和 Microsoft Visual C++、 Microsoft Visual C#,和 Microsoft Visual Basic 2005的版本。只是因为它们包括 CRT影响这些产品。要求没有特定于 IDE的更新。
Visual Studio 2005 Team Foundation Server依赖于基本的操作系统中的日期和时间的转换。因此,Visual Studio 2005 Team Foundation Server展示与操作系统相同的行为。 Visual Studio 2005 Team Foundation Server还依赖 Microsoft SQL Server、 SQL Server Reporting Services和 Windows SharePoint Services。计算机应更新的操作系统、 SQL Server,和 Windows SharePoint Services相关更新。同时,应在所有受影响的计算机上应用所有相关的更新。要求没有单独的 Visual Studio 2005 Team Foundation Server更新。
Visual Studio 2005 Team System会影响操作系统,通过 Visual Studio 2005 Team Foundation Server,和 CRT。要求没有单独的 Visual Studio 2005 Team系统更新。
有关 Visual SourceSafe DST问题 2007中的详细信息,单击下面的文章编号,以查看 Microsoft知识库中的文章:
931804在 2007中的 Visual SourceSafe夏令时问题
Visual Basic 6.0运行时不受影响。
此 SDK包括 CRT受 DST 2007更改的一个版本。安装的组成部分,该 SDK的您可以在还没有安装 CRT该版本的计算机上安装 Visual Studio 2005 CRT。如果较新版本的 CRT已安装了 SDK安装不会覆盖该较新版本。卸载 SDK时,最新版本的 CRT是留在计算机上。之前或之后安装 SDK,或者可能安装 Visual Studio 2005 CRT更新。
Windows SDK的 Windows Vista还安装的 Visual Studio 2005 CRT进行再分发的 CRT作为自定义的 C++应用程序的一部分的一组合并模块(.m *** 文件)。将可再发行的 CRT部署到应用程序的安装文件夹的应用程序必须部署从 Visual Studio 2005 CRT更新而不是 CRT.m *** 文件,在 Windows SDK针对 Windows Vista的更新的 CRT。将可再发行的 Visual Studio 2005 CRT更新部署到 Windows安装文件夹的应用程序必须应用到那些计算机的 Visual Studio 2005 CRT可再发行组件更新。
此 SDK包括 CRT受 DST 2007更改的一个版本。客户必须遵循此 SDK发行说明,并使用 Visual Studio 2005 CRT更新,如果需要。
此 SDK包括 CRT受 DST 2007更改的一个版本。安装的组成部分,该 SDK的您可以在还没有安装 CRT该版本的计算机上安装 Visual Studio 2005 CRT。如果较新版本的 CRT已安装了 SDK安装不会覆盖该较新版本。卸载 SDK时,最新版本的 CRT是留在计算机上。之前或之后安装 SDK,或者可能安装 Visual Studio 2005 CRT更新。
应用程序通常将 UTC时间转换为本地时间,在向用户显示时间信息和日期信息之前。 Windows提供了几个 API应用程序用于在时间戳操作。
五、什么是文件的创建时间、修改时间和访问时间
1、创建时间是指文件信息之一次出现在当前硬盘上的时间;
2、修改时间是指文件最近一次被保存的时间;
3、访问时间是指最近一次文件夹中的任意一个子文件被保存的时间;
4、三者相互独立,且能利用软件修改。
5、正常情况下,在一台电脑保存过一个文件,再用U盘复制到另一台电脑上时,就会出现后面那台电脑文件修改时间早于创建时间的情况。而访问时间是指文件夹中某个文件被保存的时间或文件夹的创建时间。文件的访问时间一般没有意义。
6、但是也必须明白,这三个时间是可以利用软件任意修改的。可以使用Windows API修改这三种时间,这三种时间为64位时间系统,但是系统资源管理器只能显示其中32位的部分。如果你将时间设置为早于1900年1月1日,资源管理器这一栏会显示空白。但是你仍然可以用API读取到你之前设定好的时间。文件修改时间是Windows系统和Linux系统都有的,所以Java中也有提供改变文件修改时间的函数。但Java API没有改变创建时间和访问时间的函数。
7、如果使用文件内存映射打开文件并保存,文件的三个时间都不会改变。因为文件内存映射绕开了部分的文件管理机制,文件的时间更新也被绕开了。
好了,本文到此结束,如果可以帮助到大家,还望关注本站哦!