• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    迪恩网络公众号

delphi日期格式显示及文件打开方式小结

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

今天要显示delphi日期格式为"xxxx年xx月xx日"形式,原本以为格式化串就是这样写的,后来发现不行,搜索后才知是按格式"dddddd"。

参考:在Delphi中可用FormatDateTime函数的用法

function FormatDateTime(const Format: string; DateTime: TDateTime): string;

Format参数是一个格式化字符串。DateTime是时间类型。返回值是一种格式化后的字符串,重点来看Format参数中的指令字符

   

c以短时间格式显示时间,即全部是数字的表示 
FormatdateTime('c',now); 
输出为:2004-8-7 9:55:40

d 对应于时间中的日期,日期是一位则显示一位,两位则显示两位 
FormatdateTime('d',now); 
输出可能为1~31

   

dd 和d的意义一样,但它始终是以两位来显示的 
FormatdateTime('dd',now); 
输出可能为01~31

ddd 显示的是星期几 
FormatdateTime('ddd',now); 
输出为: 星期六

   

dddd 和ddd显示的是一样的。 
但上面两个如果在其他国家可能不一样。

ddddd 以短时间格式显示年月日 
FormatdateTime('ddddd',now); 
输出为:2004-8-7

   

dddddd 以长时间格式显示年月日 
FormatdateTime('dddddd',now); 
输出为:2004年8月7日

e/ee/eee/eeee 以相应的位数显示年 
FormatdateTime('ee',now); 
输出为:04 (表示04年)

   

m/mm/mmm/mmmm 表示月 
FormatdateTime('m',now); 
输出为:8FormatdateTime('mm',now); 
输出为 08 
FormatdateTime('mmm',now); 
输出为 八月 
FormatdateTime('mmmm',now); 
输出为 八月 
和ddd/dddd 一样,在其他国家可能不同

yy/yyyy 表示年 
FormatdateTime('yy',now); 
输出为 04 
FormatdateTime('yyyy',now); 
输出为 2004

   

h/hh,n/nn,s/ss,z/zzz 分别表示小时,分,秒,毫秒 
t 以短时间格式显示时间 
FormatdateTime('t',now); 
输出为 10:17

tt 以长时间格式显示时间 
FormatdateTime('tt',now); 
输出为10:18:46

ampm 以长时间格式显示上午还是下午 
FormatdateTime('ttampm',now); 
输出为:10:22:57上午


如果要在Format中加普通的字符串,可以用双引号隔开那些特定义的字符,这样普通字符串中如果含特殊的字符就不会被显示为时间格式啦: 
FormatdateTime('"today is" c',now); 
输出为:today is 2004-8-7 10:26:58

时间中也可以加"-"或"\"来分开日期: 
FormatdateTime('"today is" yy-mm-dd',now); 
FormatdateTime('"today is" yy\mm\dd',now); 
输出为: today is 04-08-07

也可以用":"来分开时间 
FormatdateTime('"today is" hh:nn:ss',now); 
输出为:today is 10:32:23

今天真正弄明白一个问题,TfileStream如何共享打开一个文件,FileStream := TFileStream.Create(FileName, fmShareDenyNone);即可,不怕要以读为目的打开的文件已被占用的情况。

delphi 用 TFileStream(文件流) 读写:TStream 是一个抽象的基类, 不能直接生成对象. 在具体的应用中, 主要使用它的子孙类:
TFileStream: 文件流
TStringStream: 字符串流
TMemoryStream: 内存流
TResourceStream: 资源文件流

THandleStream: 是 TFileStream 的父类、TStream 的子类
TCustomMemoryStream: 是 TMemoryStream 和 TResourceStream 的父类、TStream 的子类

与流相关的常用类还有: TReader、TWriter、TCompressionStream、TDecompressionStream

procedure TForm1.Button1Click(Sender: TObject);
var
getStream,setStream: TFileStream; {声明一个文件流}
getPath,setPath: string;
begin
getPath := 'c:\temp\get.jpg'; {需要这个文件存在}
setPath := 'c:\temp\set.jpg'; {这个会自动建立}
if not FileExists(getPath) then
begin
ShowMessage('找不到我们要测试的图片文件: ' + getPath);
Exit;
end;

getStream := TFileStream.Create(getPath, fmOpenRead or fmShareExclusive);
setStream := TFileStream.Create(setPath, fmCreate);
{建立文件流需要两个参数: 参数 1 是路径, 参数 2 是打开模式}

getStream.Position := 0; {流指针移到开始, 复制时从这里开始}
setStream.CopyFrom(getStream, getStream.Size); {Copy 流}
{CopyFrom 的参数 2 是要复制的内容大小; 如果为 0 , 不管指针在什么位置都会复制所有内容}
{CopyFrom 返回实际拷贝的字节数}

{这时硬盘上就有 set.jpg 文件, 与 get.jpg 一么一样}
{其实就是复制文件, 不过这里我们是用文件流实现的}

getStream.Free;
setStream.Free;
end;

TFileStream 打开模式与共享模式:

分类

参数

说明




fmCreate

建立文件, 如果存在则打开它。

fmOpenRead

只读打开

fmOpenWrite

只写打开

fmOpenReadWrite

读写打开




fmShareCompat

共享模式, 兼容 Dos

fmShareExclusive

不允许别人以任何方式打开

fmShareDenyWrite

允许别人以只写方式打开

fmShareDenyRead

允许别人以只读方式打开

fmShareDenyNone

允许别人以任何方式打开


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap