小编mik*_*ika的帖子

文件名中您最喜欢的日期和时间格式是什么?

这是一个有点主观的问题,并不是很重要的事情,但有些事情却让我经常烦恼.似乎没有不言而喻的方法将时间戳放在文件名中.

客观问题是文件名中的时间戳应该是可排序的.但是,由于":"字符,"s"("yyyy-MM-ddTHH:mm:ss")和"u"("yyyy-MM-dd HH:mm:ssZ")等.NET可排序日期格式在文件名中无效.

另一件事是你应该很容易看到是否使用了通用或本地时间.实际上,用户似乎更喜欢当地时间和普及时间.

我最终使用的是基本时间格式的ISO 8601:

  • 本地时间格式字符串 "yyyy-MM-ddTHHmmsszz"
  • UTC格式字符串 "yyyy-MM-ddTHHmmssZ"

在这些格式中,我当前的当地时间是"2009-08-08T151800+03"和UTC"2009-08-08T121800Z"

您也可以使用"K"自动检测DateTime.Kind 并使用"yyyy-MM-ddTHHmmssK",但是您必须替换':'字符.

还有其他建议吗?

编辑:到目前为止的一些注释:

"yyyy-MM-ddTHHmmsszz"如果涉及多个时区,则本地时间+时区格式不再可排序.在大多数情况下,如果时区信息是冗余的,则删除时区信息是有意义的,否则使用UTC.

另一件事是UTC应始终标有"Z","GMT"或"UTC"以防止猜测和错误.

Julian日期和其他stardate很酷,因为与格里高利历的日期算术是脑死亡.

.net filenames datetime

76
推荐指数
3
解决办法
4万
查看次数

将字符串解析为整数(来到地狱或高水位)

我需要维护一个遗留的VB.NET Web应用程序.我想说,数据输入是不一致的.特别是,有些数据有时存储为整数,有时也存储为字符串,我必须可靠地将字符串解析为整数.如果解析出错,它应该总是返回0.

问题是,我不能使用任何.NET/VB.NET解析函数,但我必须依赖自制函数.

我可以使用单行标准框架调用来执行每个String-to-Integer解析任务吗?

假设有一个字符串可以为null,为空,包含类似"10"的整数表示或包含其他内容.

我用空输入字符串""尝试了这些:

CType(string, Integer) -> Conversion from string "" to type 'Integer' is not valid.
Convert.ToInt32(string) -> Input string was not in a correct format.
Integer.Parse(string) -> Input string was not in a correct format.
CInt(string) -> Conversion from string "" to type 'Integer' is not valid.
Val(string) -> Success!
Run Code Online (Sandbox Code Playgroud)

但即使Val也会失败.万无一失的方式是调用自制功能:

   Public Function ToInteger(ByVal s As String) As Integer

        s = Trim(s)
        Dim i As Integer

        Try
            i = Val(s)
        Catch ex As Exception …
Run Code Online (Sandbox Code Playgroud)

.net vb.net asp.net

1
推荐指数
2
解决办法
6211
查看次数

标签 统计

.net ×2

asp.net ×1

datetime ×1

filenames ×1

vb.net ×1