Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/35.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Asp.net 日期格式问题_Asp.net_Vb.net - Fatal编程技术网

Asp.net 日期格式问题

Asp.net 日期格式问题,asp.net,vb.net,Asp.net,Vb.net,我无法将日期值更改为所需的格式。这是我的代码。当我执行此代码时,我将我的日期视为mm/DD/yyyy格式。我遗漏了什么 Dim dateString As String = Date.Now.ToString("dd.MM.yyyy") Dim myDate As Date = Date.ParseExact(dateString, "dd.MM.yyyy", Nothing) 你不会错过任何东西myDate是一个Date,它在内部以数字形式存储日期(更准确地说,是一个UInt64

我无法将日期值更改为所需的格式。这是我的代码。当我执行此代码时,我将我的日期视为mm/DD/yyyy格式。我遗漏了什么

 Dim dateString As String = Date.Now.ToString("dd.MM.yyyy")    
 Dim myDate As Date = Date.ParseExact(dateString, "dd.MM.yyyy", Nothing)

你不会错过任何东西
myDate
是一个
Date
,它在内部以数字形式存储日期(更准确地说,是一个
UInt64
)。它不存储日期的字符串表示形式,并且它本身没有格式。当它显示为字符串时(例如使用
ToString
方法),如果未指定日期格式,它将使用当前区域性的默认格式,在您的情况下,该格式似乎是
MM/dd/yyyy

更新

我会尽量把这说得更清楚一点

你所经历的其实是一个相当普遍的误解。您确实需要在日期和日期的字符串表示形式之间进行区分。这是两件不同的事情

Date
(实际上是一个没有时间信息的
DateTime
,因此我将在这里引用
DateTime
)将日期和时间作为一个数字存储在内部。目前,我所在的位置是
985725988526375120
。这是当前日期和时间,在
DateTime
对象中表示

虽然这个值对代码非常有用,但对我们人类来说意义不大。我们决定在不同的国家以不同的方式写日期,这让事情变得更复杂了。因此,在瑞典,今天的日期将写为
“2009-09-17”
,而在土耳其则写为
“17.09.2009”

因此,为了让事情变得更简单,每当
DateTime
对象显示为文本时(在VS调试器中,当在屏幕上打印时等等),数值都会使用某种日期格式格式化为字符串。这种格式在不同的国家会有所不同。如果显示字符串时未指定格式,则将使用当前区域性的默认格式。例如,在VS watch窗口中就是这种情况

如果希望根据特定区域性格式化
DateTime
对象的字符串表示形式,可以将其传递给
ToString
方法,如下所示:

myDate.ToString(CultureInfo.GetCultureInfo("tr-TR"))
另一方面,如果需要将日期转换为其他特定格式,则可以使用格式字符串来实现:

Dim formattedDate1 As String = myDate.ToString("dd'/'MM'/'yyyy")
Dim formattedDate2 As String = myDate.ToString("dd.MM.yyyy")

注意格式字符串中/字符周围的单引号;它们是必需的,因为系统默认情况下会将/解释为当前区域性的日期分隔符的占位符。如果您希望强制格式化日期使用/字符,而不是当前区域性的正常分隔符(“-”在瑞典,“.”在土耳其),则需要像我的示例中那样对其进行转义。

Hi,虽然我获得了区域性信息并使用了它,但它不会改变。我尝试将此暗淡的myCultureInfo作为新系统。Globalization.CultureInfo(“tr”)Dim myDate As Date=Date.ParseExact(日期字符串,“dd.MM.yyyy”,myCultureInfo)您如何“看到”myDate?在Visual Studio观看窗口中还是从程序输出中?如果是后者,您是如何创建输出的?您没有领会我的意思。
ParseExact
返回的
Date
对象没有任何格式。这只是一个数字。为了让我们人类能够理解它,它被转换成一个可理解的字符串表示。这就是格式进入图片的时候。尝试添加此代码:
Dim temp As String=myDate.ToString(CultureInfo.GetCultureInfo(“tr tr”)
。这将使用
Date
对象,并将其日期的内部数字表示形式转换为一个字符串,按照土耳其日期格式规则进行格式设置。好的,fredrik,我知道了。但我想知道,例如,如果我想发送一个日期参数进行查询,oracle TO_DATE函数是否足以更改我的格式。我在函数中使用DATE的方法,但在数据库日期存储中不能使用dd/mm/yyyy格式的字符串。如果我使用字符串,我不会遇到问题,但在这种情况下,日期类型会导致问题吗?@Cem:对我的答案进行了澄清。我希望它包含你需要的东西。