PB中如何把字符串转换成日期型

PB中如何把字符串转换成日期型,第1张

string sdt

sdt='2009-01-01 15:23:11'//给日期字符串赋值

if not isdate(sdt) then return

datetime dt

dt=datetime(date(left(sdt,10)),time(right(sdt,8)))

使用DaysAfter(datetime1,datetime2)

得出的结果就是相关多少天,不过好像只支持date变量,你可以转化一下

DaysAfter(date(datetime1),date(datetime2))

我在网上找到的一种方法:

string filename= "C:\powerbuilder\PbApi\WinApitxt "

ulong hfile

long rtn

WIN32_FIND_DATA lpFindFileData

SYSTEMTIME lpSystemTime

filetime lpcreate

filetime lpaccess

filetime lpwrite

FILETIME lpFileTime

FindFirstFile(filename,lpFindFileData)

lpFileTime = lpFindFileDatacreationtime

rtn = FileTimeToSystemTime(lpFileTime,lpSystemTime)

Messagebox( "creationtime ", string(lpSystemTimewyear)+ "年 "+string(lpSystemTimewmonth)+ "月 "+string(lpSystemTimewday)+ "日 ")

相关结构:

$PBExportHeader$win32_find_datasrs

global type WIN32_FIND_DATA from structure

unsignedlong fileattributes

filetime creationtime

filetime lastaccesstime

filetime lastwritetime

unsignedlong filesizehigh

unsignedlong filesizelow

unsignedlong reserved0

unsignedlong reserved1

character filename[260]

character alternatefilename[14]

end type

$PBExportHeader$filetimesrs

global type FILETIME from structure

ulong dwLowDateTime

ulong dwHighDateTime

end type

$PBExportHeader$systemtimesrs

global type SYSTEMTIME from structure

uint wYear

uint wMonth

uint wDayOfWeek

uint wDay

uint wHour

uint wMinute

uint wSecond

uint wMilliseconds

end type

函数定义

FUNCTION ulong FileTimeToSystemTime(ref FILETIME lpFileTime,ref SYSTEMTIME lpSystemTime) LIBRARY "kernel32dll "

FUNCTION ulong FindFirstFile(ref string lpFileName,ref WIN32_FIND_DATA lpFindFileData) LIBRARY "kernel32dll " ALIAS FOR "FindFirstFileA "

但是,运行时总是提示下面几行有问题:

FILETIME lpFileTime

FindFirstFile(filename,lpFindFileData)

lpFileTime = lpFindFileDatacreationtime

rtn = FileTimeToSystemTime(lpFileTime,lpSystemTime)

建立一个userobject,命名为n_cst_liveupdate

然后对该对象edit source ,将下面那些内容复制替换掉里面的内容,然后保存

n_cst_liveupdate是一个取(和设置)本地文件最后修改日期的自定义对象

问题出在什么地方,是否还有其它好的办法,请各位多多指教

用API

FUNCTION ulong GetFileTime(ulong hFile,ref FILETIME lpCreationTime,ref FILETIME lpLastAccessTime,ref FILETIME lpLastWriteTime) LIBRARY "kernel32dll"

filetime是个结构

Type FILETIME from structure

Long dwLowDateTime

Long dwHighDateTime

End Type

参数表

参数 类型及说明

hFile Long,文件的句柄

lpCreationTime FILETIME,用于装载文件的创建时间

lpLastAccessTime FILETIME,用于装载文件上一次访问的时间(FAT文件系统不支持这一特性)

lpLastWriteTime FILETIME,用于装载文件上一次修改的时间

注:

如果不需要特定的信息,那么lpCreationTime,lpLastAccessTime,lpLastWriteTime都可以设置为零。这个函数返回的文件时间采用UTC格式

PB参考手册上面有详解的需要了解一下几个知识:

第一,String类型与DateTime类型的转换:DateTime函数有两个参数,一个是日期(String类型),一个是时间(也是String类型),不能缺少任一个参数,否则转换的会是乱码,Messagebox查看是问号;

第二,日期类型比较可以使用DaysAfter(Start_Date,End_Date)函数,如果第一个参数大于第二个返回负数,否则返回值大于等于零;如果是日期相等,就可以使用Hour(),Minute(),Second()函数取时间类型参数的相应数据,组合一下,比较就可以了

第一个问题:

dw_1setfilter("yxrq>datetime(today(),now())")

dw_1filter()

第二个问题没听懂,请补充说明。

-------------------------------------

dw_1setfilter("(yxrq>datetime(today(),now())) and (kcsl>xxsl) and (zt='在库')")

dw_1filter()

数据窗口名 dw_a

数据窗口列名 a_date

筛选语句应为

如取时间类型:

datetime Ldt_date

Ldt_date=dw_aobjecta_date[行号]

如取字符类型:

string Ls_date

Ls_date="2013/12/24"或者Ls_date=string(date(Ldt_date),'yyyy/mm/dd')

dw_asetfilter("a_date>'"+Ls_date+"'")

dw_afilter()

以上就是关于PB中如何把字符串转换成日期型全部的内容,包括:PB中如何把字符串转换成日期型、PB问题,怎样实现两个datetime类型的减法,结果得到相差多少天就行!!!(急)、关于怎么获取文件修改日期的方法等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9453078.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存