0

我想更改经典 asp 中的默认日期时间格式。我在控制面板的区域和语言中更改了英国格式。

我用下面的代码进行了测试。

Response.Write Now()

它正确显示英国时间格式(“dd/mm/yyyy”)。但是我在下面更改了我的代码。

Response.Write CStr(Now())

它显示美国时间格式,如“mm/dd/yyyy”。

如何将其修复为英国时间格式?谢谢。

4

3 回答 3

2

听起来 IIS 上的区域设置设置为美国 - 将其设置为英国。这将为您提供无代码修复:)

另外,看看这个类似的问题:Change Default Locale in IIS 6.0

于 2013-09-02T09:11:07.683 回答
1

这里的 MSDN 文档说:

CStr 函数使用系统的区域设置来确定如何执行转换。
...包含系统
短日期格式的日期的字符串。

因此,请转到服务器控制面板中的“区域”设置并在那里更改日期格式。

如果您想要一个更强大的解决方案,那么您需要自己从日期部分组装字符串,或者远离经典的 ASP。

这个问题显示了一些解决方案: How can I reformat a date stored as a string in VB?

于 2013-09-02T20:43:08.793 回答
0

您可以在此处采用两种主要方法(假设您的当前值是一个字符串)。

方法一:拆分日期并重新格式化

此方法涉及使用 String.Split() 方法,该方法将创建一个提供字符串和分隔符的数组。通过引用数组的索引,您可以将它们重新构造为您想要的格式:

'Your Date Components being split into an array'
Dim dc() As String = rs("StayDate").Split("/"c)

'Creates a new string by moving around the different indices 0 - dd, 1 - MM, 2 - yyyy'
Dim newDate As String = String.Format("{0}/{1}/{2}", dc(1), dc(0), dc(2))

方法二:解析和格式化

第二种方法将使用 DateTime.ParseExact() 解析您的字符串,并允许您指定日期最初的格式,然后您可以使用 ToString() 方法以您认为合适的方式输出它:

Imports System.Globalization

'Parses the date and outputs it in your new format'
Dim newDate As String = DateTime.ParseExact(rs("StayDate").Value, "dd/MM/yyyy", CultureInfo.InvariantCulture).ToString("MM/dd/yyyy")
于 2013-09-02T08:07:39.083 回答