c语言中time_t t; ctime(t); 功能如何在VB中实现?

wj_1027 2006-01-04 04:06:03
在C语言中
time_t t;
t = 1124356321;
printf("%s",ctime(t));

ctime()可以将其变为月日,时分秒,年的形式。
在C语言中可以将time_t转变为时间字符串形式,那么我知道了Time的长整形(time_t其实就是长整形),在VB中如何将其转化为时间格式呢?
...全文
495 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
wj_1027 2006-01-11
  • 打赏
  • 举报
回复
搞错了.应该给northwolves(狼行天下) 18分的
wj_1027 2006-01-11
  • 打赏
  • 举报
回复
谢谢你这么详尽的回复!
northwolves 2006-01-07
  • 打赏
  • 举报
回复
更直接一些:
#1/1/1970 8:00:00 AM# + 1124356321/3600/24
northwolves 2006-01-07
  • 打赏
  • 举报
回复
Private Sub Command1_Click()
MsgBox "#8/18/2005 5:12:01 PM# --->" & vbtimetoctime(#8/18/2005 5:12:01 PM#) & vbCrLf & vbCrLf & "1124356321-->" & ctimetovbtime(1124356321)
End Sub
northwolves 2006-01-07
  • 打赏
  • 举报
回复
c语言中的time_t返回某时间自1970-1-1 8:00:00 的秒数:

Function ctimetovbtime(ByVal ctime As Long) As Date
ctimetovbtime = DateAdd("s", ctime, #1/1/1970 8:00:00 AM#)
End Function

Function vbtimetoctime(ByVal vbtime As Date) As Long
vbtimetoctime = DateDiff("s", #1/1/1970 8:00:00 AM#, vbtime)
End Function

rainstormmaster 2006-01-07
  • 打赏
  • 举报
回复
//你好。按你所说112435.6321的结果是2207-11-1 15:10:13
但是在C里面,1124356321结果是2005-8-18 17:12:01

这个是2者的时间表示方式不一致造成的,c的我就不说了,vb的是这样,整数部分表示自从1899-12-30日以来所经历的天数(即日期型变量的整数部分是1的话,对应的日期是1899-12-31,是2的话,对应的日期是1900-1-1,......,是366的话对应的日期是1900-12-31,......,是36526的话,对应的日期是2000-1-1......),这和c的分别在指定的数据位中存储年、月、日有很大的差别,所以结果不会一致
wj_1027 2006-01-07
  • 打赏
  • 举报
回复
of123()
你好。按你所说112435.6321的结果是2207-11-1 15:10:13
但是在C里面,1124356321结果是2005-8-18 17:12:01
两个值的差别太大。
另外,我将2005-8-18 17:12:01代入到Date中,显示其数值是38582.7166782407
请问问什么?
of123 2006-01-04
  • 打赏
  • 举报
回复
Dim t As Date

t = 112435.6321

MsgBox t

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧