vb.net 2010日期格式和系统日期格式不一致,求解

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vb.net 2010日期格式和系统日期格式不一致,求解相关的知识,希望对你有一定的参考价值。

使用vb.net开发的一套程序,XP系统,之前一切正常,今天开机后,发现日期格式变了,带来了很大的麻烦。

控制面板中,区域选择是中文(中国),短日期格式是"yyyy-M-d“,但不能更改,做了任何更改,包括把”-“改成”/“都不行,都提示说输入了不恰当的字符,只能取消。
access数据库中,日期格式也是设置的短日期"yyyy-M-d"。
但在datetimepicker控件中,value.date的值却是”yyyy/M/d",不管怎么改,都不发生变化(显示格式使用Custom格式可以改变),获取的值如果不使用format,一直显示“yyyy/M/d"的格式,同时,从数据库读取日期数据后,在datagird控件中显示,也是"yyyy/M/d"的格式。
但直到昨天为止,此前一直显示是正常。
求教:如何改变这一种情况?或者,利用程序获取当前使用的日期格式并予以改变?

其实电脑中的日期格式是Date类型,你所说的"yyyy-M-d“还是“yyyy/M/d"都是其转换为字符串以后显示的方式,你可以用Format函数将Date类型转换为你希望显示的任何形式,例如:

Format(DateTimePicker1.Value, "yyyy-MM-dd") '2014-08-30
Format(DateAndTime.Now, "yyyy-M-d") '2014-8-30
Format(DateTimePicker1.Value, "Long Date") '2014年8月30日
参考技术A 我是 Windows 8。DateTimePicker 控件有个 Format 属性,改为 Custom,然后可以修改 CustomFormat 改变它的显示格式。你是不是改这里来着? 参考技术B 时间变量的格式可以自己指定的,不需要和系统保持一致
因为时间变量里的年月日可以单独取出来,然后组合成程序自己使用的格式,存在数据库里
就没有任何问题了。
Dim dt As Date, Y As String, M As String, D As String, S As String
dt = Now

Y = dt.Year
M = dt.Month
D = dt.Day

S = Y & "-" & M & "-" & D

MsgBox(S)

以上代码的变量S所存储的时间就不会受系统格式任何影响了!
当也可以不需要YMD中间变量直接组合!
参考技术C 系统格式是系统格式,你要做到你的程序的日期和时间格式与系统格式不相干才行,我最讨厌就是那么些软件要把系统格式改成某种格式才能用的软件,更讨厌把日期时间当字符串存到数据里,这样写的软件很垃圾,开发的人也很垃圾!

你把日期格式设置的短日期"yyyy-MM-dd"试下追问

呵呵,我程序是和系统日期格式不相关的,但之前一直是使用了“yyyy-M-d"的格式的日期,现在突然自己变了,而且系统日期格式没有变。另外,日期格式变了不影响我程序的运行,也不影响任何结果,单纯的只是我自己看着不舒服
日期格式的都设置了,没有用

追答

System.Globalization.CultureInfo,也就是System.Threading.Thread.CurrentThread.CurrentCulture,把这个设成你自己喜欢的格式就行了,如果单是Datetimepicker就改成custom的,然后自己设自己喜欢的格式

参考技术D 2000人的群,名称是VB人生 号148317126,去那里问问

vb.net 里面如何判断某个值存在一个数组中?

vb.net 里面如何判断某个值存在一个数组中?

参考技术A 如果是简单类型,可以用数组的indexof方法

Dim colXX As String() = New String() "1", "2", "3", "4Dim colXX As String() = New String() "1", "2", "3", "4"

if (colXX.indexof("2") >= 0) then

return true

end if
参考技术B Public Class Form1

Dim array() As Integer = 1, 2, 3, 4, 5, 6, 7, 8, 9

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If TextBox1.Text <> "" Then
Dim i As Integer
Dim finded As Boolean = False
For i = 0 To array.Length - 1
If array(i).ToString = Trim(TextBox1.Text) Then
Label1.Text = "找到了!位置是:" & i
finded = True
End If
Next
If finded = False Then Label1.Text = "没找到!"
End If
End Sub
End Class本回答被提问者采纳

以上是关于vb.net 2010日期格式和系统日期格式不一致,求解的主要内容,如果未能解决你的问题,请参考以下文章

ASP.NET vb.net 将月/日/年中的日历日期格式转换为具有日/月/年的日期对象

在VB.NET中如何将日期类型转化为String型?

vb.net在textbox1中输入六个数字后,自动将格式转换为时间格式,如输入120314自动变成12:03:14,怎么操作

vb.net 判断数字是不是为日期型

Datatable 正在从我为 Windows 10 构建的 VB.NET 应用程序中的 SQL 查询结果中接收 (01\dd\yyyy) 格式的日期

在 SQL 和 VB.NET 中检查日期是不是小于另一个