vb 获取网络时间

vb 获取网络时间,第1张

下列代码不用任何控件就能从国家授时中心网页获取时间获得网络时间。

Function NetTime(Optional url As String) As String '返回包括时间和日期的字符串

Dim obj, OBJStatus, Retrieval

Dim GetText As String

Dim i As Long

Dim myDate As Date

Set Retrieval = CreateObject("MicrosoftXML>

Private Function getWebDatetime() As String

Dim Xml>

Set Xml>

Xml>

Xml>

getWebDatetime = CDate(1 / 3 + CDbl(CDate(Mid$(Xml>

Set Xml>

End Function

扩展资料:

读取网站服务器返回的时间的代码

Private Function getWebDatetime() As String

Dim Xml>

Set Xml>

Xml>

Xml>

Set objJs = CreateObject("msscriptcontrolscriptcontrol")

objJsLanguage = "jScript"

getWebDatetime = objJsEval("var dt = new Date('" & Xml>

Set Xml>

Set objJs = Nothing

End Function

用script获得

首先在表单里定义一个域用来存放日期信息

<form id="form1" action="<%=requestgetContextPath()%>/servlet/xxxxxx" method="post">

<input type="hidden" id="currenttime" name="currenttime" />

</form>

按钮如下:

<input type="button" onclick="submitPage();" />

事件代码如下:

<script language="javascript">

function submitPage()

{

documentgetElementById("currenttime")value = new Date();

documentforms["form1"]submit();

}

</script>

注意:这个日期传递到后台的时候是个long字符串,首先要转成long型,然后再new javautilDate(long型数据);

标题太长有木有?主要是为了把问题描述清楚,免得进错文章。

昨天测试的同事测试接口的时候,测试出来一个Date类型校验问题。

要求输入的日期格式是:yyyy-MM-dd HH:mm:ss,Vo中使用的注解如下:

测试同事输入下面两种参数都是保存成功,当输入为“202105”参数时,保存的数据变为“1970-01-01 08:03:22”,由此发现这个问题。

常用的三种日期格式化的注解解释如下:

由于 @RequestBody 注解先将json字符串转换成对应的Vo对象,Vo对象中的字段上添加的注解再生效, @DateTimeFormat 只是做格式化,无法做格式校验。

用自定义注解进行json字符串中的日期格式做校验。

解决思路

1从request对象中获取原始json字符串入参 。由于自定义注解接口ConstraintValidator的实现获取到的参数值是@RequestBody注解将json字符串参数解析成Vo对象后的Date对象,不是原始json字符串值,所以需要从request中获取json原始参数值;

2获取到json入参原始值使用正则表达式对日期进行格式进行校验

温馨提示

1由于自定义注解中是无法直接获取到request对象,所以需要按照各自框架获取request对象的方式进行获取。

2获取到的原始json字符串入参可能包含 空格 回车 换行符 制表符 这些特殊字符,所以需要进行特殊字符处理。

3获取Vo对象中添加注解的属性名。

详细见: getFieldName(ConstraintValidatorContext context)即:((ConstraintValidatorContextImpl) context)basePathcurrentLeafNodename

SearchTaskVojava

DateFormatValidationjava

DateFormatValidatorjava

至此问题解决~

文章中有何隐藏问题欢迎留言交流~

有好的解决方案欢迎留言~

能直接存吧?

Date date = new Date();

直接存进去就好,如果你要把字符串转成Date类型还有点意思。这样写个工具类,什么都好说了

public static <T> T request2Bean(>

以上就是关于vb 获取网络时间全部的内容,包括:vb 获取网络时间、vb 获取网络时间较快的代码、servlet端如何获得jsp的客户端时间等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存