String。包含使用Regex或其他类似的等效项

好奇的梯子

我有以下几种格式之一传递的DateTime字符串

  • “ 2015/03 / 02T00:10:41 + 11:00”
  • “ 2015-03-02T00:10:41Z”
  • “ 2015-03-02T00:10:41”

我想找出字符串是否包含('Z'或'z')或('+'或'-')以便能够区分各种DateTime字符串格式。

我可以使用String.Contains并完成工作。我有类似的东西,它可以工作,但是...我正在寻找一种优雅的方式,最好使用Regex。

// dateTimeValue  = "2015-03-02T00:10:41Z";
// dateTimeValue  = "2015-03-02T00:10:41";
// dateTimeValue  = "2015/03/02T00:10:41+11:00";

if (dateTimeValue.IndexOf("Z", StringComparison.OrdinalIgnoreCase) >= 0)
{
   // UTC ONLY DateTime
}
else if (dateTimeValue.Contains('+') || dateTime.Value.Contains('-')) 
{
  // User Time Only
}

(!Regex.IsMatch(dateTime.Value, @"^[\+\-]+$")) //doesn't work for the second conditional statement
维克多·斯特里比尤(WiktorStribiżew)

您可以使用simple string.IndexOf()with StringComparison.OrdinalIgnoreCase(忽略大小写)来检查字符串中是否存在字符。另外,由于连字符可以出现在日期部分,并且日期模式将始终包含“ T”,因此我建议使用以下棘手的代码:

var date_and_times = new[] { "2015-03-02T00:10:41Z", "2015-03-02T00:10:41", "2015/03/02T00:10:41+11:00" };
foreach (var date_time in date_and_times)
{
     bool? contains_Z = null;
     if (date_time.Split(new[] {'T'})[1].IndexOf("z", StringComparison.OrdinalIgnoreCase) >= 0)
         contains_Z = true;
     else if (date_time.Split(new[] { 'T' })[1].Contains("+") || date_time.Split(new[] { 'T' })[1].Contains("-"))
         contains_Z = false;
     switch (contains_Z)
     {
         case true:
             // DateTime contains "Z" or "z"
             break;
         case false: 
             // DateTime contains "-" or "+"
             break;
         default:
             // DateTime has no "z", "Z", "+", or "-"
             break;
     }
 }

但是,由于您只想解析日期时间值,因此应使用DateTime.Parse()DateTime.ParseExact()

var date_and_times = new[] { "2015-03-02T00:10:41Z", "2015-03-02T00:10:41", "2015/03/02T00:10:41+11:00" };

foreach (var date_time in date_and_times)
{
  var dt = DateTime.Parse(date_time);
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何将标签页放置在与Google+应用类似的其他布局下?(示例图片包含)

来自分类Dev

SSRS包含或类似的表达

来自分类Dev

groovy-sql到底是什么,还有其他类似的模块吗?

来自分类Dev

%h和其他类似的符号是什么意思?

来自分类Dev

字符串拆分或其他类似的带有 case 语句的 SQL Server 函数

来自分类Dev

我可以使用其他笔记本电脑充电器吗?类似的电压,更高的安培数?

来自分类Dev

如何使用temple方法或泛型方法或其他方法优化我的代码? 现在我必须写3次类似的代码

来自分类Dev

删除类似的列表框项

来自分类Dev

InDesign是否具有MIF或具有其他等效功能的其他易于生成的格式的类似物?

来自分类Dev

为其他对象实现与String.intern()等效的对象

来自分类Dev

Eclipse:在 WAR 中包含其他项目的依赖项

来自分类Dev

如何使用python从文本文件中删除类似的重复项?

来自分类Dev

如何运行与“ wget”命令类似的等效“ curl”命令?

来自分类Dev

我如何使用WPS Office或其他任何方法在每个不同的列中使用集合数据来创建explode()的等效项

来自分类Dev

elixir Enum或任何其他模块是否具有与ruby的group_by类似的group_by功能

来自分类Dev

MySQL查询查找表中具有给定值的值,并查找其他类似的值

来自分类Dev

当类似的代码在其他地方工作时,Rails为什么会产生此SQL错误?

来自分类Dev

如何在QListWidget(或其他类似的小部件)中显示几个QTableViews(无滚动条)?

来自分类Dev

在 ES6 类语法中为什么 setPrototypeOf() 起作用而其他类似的方法不起作用

来自分类Dev

如何使用Regex在Notepad ++中选择所有类似的代码

来自分类Dev

使用 java.util.regex.Pattern 在 java 中找到类似的 IP

来自分类Dev

Java Regex捕获多个组,其中包含其他组

来自分类Dev

JavaScript字符串包含完全匹配项,没有其他匹配项

来自分类Dev

从数据框中删除类似的重复项

来自分类Dev

使用numpy进行类似的矩阵计算

来自分类Dev

使用类似的MapRoute重写URL

来自分类Dev

List <string>的ToCharArray等效项

来自分类Dev

php包含其他包含

来自分类Dev

具有策略的策略模式包含类似的代码

Related 相关文章

  1. 1

    如何将标签页放置在与Google+应用类似的其他布局下?(示例图片包含)

  2. 2

    SSRS包含或类似的表达

  3. 3

    groovy-sql到底是什么,还有其他类似的模块吗?

  4. 4

    %h和其他类似的符号是什么意思?

  5. 5

    字符串拆分或其他类似的带有 case 语句的 SQL Server 函数

  6. 6

    我可以使用其他笔记本电脑充电器吗?类似的电压,更高的安培数?

  7. 7

    如何使用temple方法或泛型方法或其他方法优化我的代码? 现在我必须写3次类似的代码

  8. 8

    删除类似的列表框项

  9. 9

    InDesign是否具有MIF或具有其他等效功能的其他易于生成的格式的类似物?

  10. 10

    为其他对象实现与String.intern()等效的对象

  11. 11

    Eclipse:在 WAR 中包含其他项目的依赖项

  12. 12

    如何使用python从文本文件中删除类似的重复项?

  13. 13

    如何运行与“ wget”命令类似的等效“ curl”命令?

  14. 14

    我如何使用WPS Office或其他任何方法在每个不同的列中使用集合数据来创建explode()的等效项

  15. 15

    elixir Enum或任何其他模块是否具有与ruby的group_by类似的group_by功能

  16. 16

    MySQL查询查找表中具有给定值的值,并查找其他类似的值

  17. 17

    当类似的代码在其他地方工作时,Rails为什么会产生此SQL错误?

  18. 18

    如何在QListWidget(或其他类似的小部件)中显示几个QTableViews(无滚动条)?

  19. 19

    在 ES6 类语法中为什么 setPrototypeOf() 起作用而其他类似的方法不起作用

  20. 20

    如何使用Regex在Notepad ++中选择所有类似的代码

  21. 21

    使用 java.util.regex.Pattern 在 java 中找到类似的 IP

  22. 22

    Java Regex捕获多个组,其中包含其他组

  23. 23

    JavaScript字符串包含完全匹配项,没有其他匹配项

  24. 24

    从数据框中删除类似的重复项

  25. 25

    使用numpy进行类似的矩阵计算

  26. 26

    使用类似的MapRoute重写URL

  27. 27

    List <string>的ToCharArray等效项

  28. 28

    php包含其他包含

  29. 29

    具有策略的策略模式包含类似的代码

热门标签

归档