Private Sub Form_Load() Dim S As String S = Format("2009-01-03 PM03:24:13", "yyyy-mm-dd hh:mm:ss") MsgBox S & ".000" End Sub
如果".000"是毫秒数的话用API获取毫秒数取后三位
是这样的. Dim Time as Variant Set Rstemp = m_BillInterface.K3Lib.GetData("Select FCheckDate From t_BOS220000004 Where Fid = '" & Fid & "'") Time = Format(Rstemp.Fields("FCheckDate"), "yyyy-mm-dd hh:mm:ss")问题一:我添加监视Rstemp ,FCheckDate的Value是#2009-01-04 AM 08:11:32#,而在立即窗口得到FCheckDate是 2009-01-04 AM 08:11:32,请问这条语句Time = Format(Rstemp.Fields("FCheckDate"), "yyyy-mm-dd hh:mm:ss")中Rstemp.Fields("FCheckDate"), 的值到底是这样#2009-01-04 AM 08:11:32#, 还是2009-01-04 AM 08:11:32 问题二: 为什么执行以上语句Time的值仍然是2009-01-04 AM 08:11:32
应该用Format函数.
下面表格标识一些可用来创建用户自定义日期/时间格式的字符:字符 说明
(:) 时间分隔符。在一些国别,可能用其他符号来当时间分隔符。格式化时间值时,时间分隔符可以分隔时、分、秒。时间分隔符的真正字符在格式输出时取决于系统的设置。
(/) 日期分隔符。在一些国别,可能用其他符号来当日期分隔符。格式化日期数值时,日期分隔符可以分隔年、月、日。日期分隔符的真正字符在格式输出时取决于系统设置。
c 以 ddddd 来显示日期并且以 ttttt 来显示时间。如果想显示的数值无小数部分,则只显示日期部分,如果想显示的数值无整数部分,则只显示时间部分。
d 以没有前导零的数字来显示日 (1 – 31)。
dd 以有前导零的数字来显示日 (01 – 31)。
ddd 以简写来表示日 (Sun –Sat)。
dddd 以全称来表示日 (Sunday –Saturday)。
ddddd 以完整日期表示法显示(包括年、月、日),日期的显示要依系统的短日期格式设置而定。缺省的短日期格式为 m/d/yy。
dddddd 以完整日期表示法显示日期系列数(包括年、月、日),日期的显示要依系统识别的长日期格式而定。缺省的长日期格式为 mmmm dd, yyyy。
w 将一周中的日期以数值表示(1 表星期日~ 7表星期六)。
ww 将一年中的星期以数值表示 (1 – 54)。
m 以没有前导零的数字来显示月 (1 – 12)。如果 m 是直接跟在 h 或 hh 之后,那么显示的将是分而不是月。
mm 以有前导零的数字来显示月 (01 – 12)。如果m是直接跟在h或hh之后,那么显示的将是分而不是月。
mmm 以简写来表示月 (Jan –Dec)。
mmmm 以全称来表示月 (January –December)。
q 将一年中的季以数值表示 (1 – 4)。
y 将一年中的日以数值表示 (1 – 366)。
yy 以两位数来表示年 (00 – 99)。
yyyy 以四位数来表示年 (00 – 99)。
h 以没有前导零的数字来显示小时 (0 – 23)。
Hh 以有前导零的数字来显示小时 (00– 23)。
N 以没有前导零的数字来显示分 (0 – 59)。
Nn 以有前导零的数字来显示分 (00 – 59)。
S 以没有前导零的数字来显示秒 (0 – 59)。
Ss 以有前导零的数字来显示秒 (00 – 59)。
t t t t t 以完整时间表示法显示(包括时、分、秒),用系统识别的时间格式定义的时间分隔符进行格式化。如果选择有前导零并且时间是在 10:00 A.M. 或 P.M.之前,那么将显示有前导零的时间。缺省的时间格式为 h:mm:ss。
AM/PM 在中午前以 12 小时配合大写 AM 符号来使用;在中午和 11:59 P.M.间以 12 小时配合大写 PM 来使用。
am/pm 在中午前以 12 小时配合小写 am 符号来使用;在中午和 11:59 P.M.间以 12 小时配合小写 pm 来使用。
A/P 在中午前以 12 小时配合大写A符号来使用;在中午和 11:59 P.M.间以12 小时配合大写P来使用。
a/p 在中午前以 12 小时配合小写a符号来使用;在中午和 11:59 P.M.间以 12 小时配合小写p来使用。
AMPM 在中午前以 12 小时配合系统设置的 AM字符串文字来使用;在中午和 11:59 P.M. 间以 12 小时配合系统设置的 PM 字符串文字来使用。AMPM 可以是大写或小写,但必须和您的系统设置相配。其缺省格式为 AM/PM。 用户自定义日期/时间格式示例
下面表格是以用户自定义日期/时间格式来显示 December 7, 1958 的示例:格式 显示结果
m/d/yy 12/7/58
d-mmm 7-Dec
d-mmmm-yy 7-December-58
d mmmm 7 December
mmmm yy December 58
hh:mm AM/PM 08:50 PM
h:mm:ss a/p 8:50:35 p
h:mm 20:50
h:mm:ss 20:50:35
m/d/yy h:mm 12/7/58 20:50
这个不行吧,只能转化为2009-01-03 13:00:08格式的
你给的数据,精度达不到啊
Format("2009-01-03 PM03:24:13", "yyyy-mm-dd hh:mm:ss")
Time 还是2009-01-03 PM 03:24:13,没有转化成2009-01-03 15:24:13
Dim S As String
S = Format("2009-01-03 PM03:24:13", "yyyy-mm-dd hh:mm:ss")
MsgBox S & ".000"
End Sub
如果".000"是毫秒数的话用API获取毫秒数取后三位
Set Rstemp = m_BillInterface.K3Lib.GetData("Select FCheckDate From t_BOS220000004 Where Fid = '" & Fid & "'")
Time = Format(Rstemp.Fields("FCheckDate"), "yyyy-mm-dd hh:mm:ss")问题一:我添加监视Rstemp ,FCheckDate的Value是#2009-01-04 AM 08:11:32#,而在立即窗口得到FCheckDate是
2009-01-04 AM 08:11:32,请问这条语句Time = Format(Rstemp.Fields("FCheckDate"), "yyyy-mm-dd hh:mm:ss")中Rstemp.Fields("FCheckDate"), 的值到底是这样#2009-01-04 AM 08:11:32#, 还是2009-01-04 AM 08:11:32
问题二:
为什么执行以上语句Time的值仍然是2009-01-04 AM 08:11:32
转换成 2009-01-03 13:00:08.000 类似这种模式
-------------------------------------------------------------首先说明,你的时间值本身并不包含毫秒分量,它可以显示,但永远为 000:Debug.Print Format(CDate(Replace("#2009-01-03 PM03:24:13#", "#", "")), "yyyy-mm-dd HH:nn:ss.000")
请来http://topic.csdn.net/u/20090104/08/200ea46f-7608-4e16-8538-6f459507b37d.html帮我回答.