首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将字符串解析为DateTime格式“日、月、年”

将字符串解析为DateTime格式“日、月、年”
EN

Stack Overflow用户
提问于 2016-02-15 23:24:47
回答 2查看 1.7K关注 0票数 1

我有以下字符串,我需要将其解析为一个日期。2016年9月23日(星期五)下午三时至八时

我在n-破折号上拆分它,然后我需要使用格式字符串的ParseExact。我试过以下几种方法。"dddd',‘MMMM’,‘yyyy’“"dddd,MMMM,yyyy”“”"ddd,MMMM,yyyy“

我意识到这是类似的,如果不是确切的长期约会,但我需要是非本地的。这是我做的和正在尝试使用的功能。

代码语言:javascript
复制
public DateTime parseDate(string s, string dateString)
{
    var splitAr = s.Split((char)8211);
    var dPart = new DateTime();
    try
    {
        dPart = DateTime.ParseExact(splitAr[0].Trim(), dateString, CultureInfo.InvariantCulture);
    }
    catch (Exception e)
    {
        Trace.TraceWarning("Wasn't able to parse this date string so used try." + splitAr[0]);
        DateTime.TryParse(splitAr[0].Trim(), out dPart);
    }
    var timeArray = splitAr[1].Split('-');

    return d;
}

如果有人能看到问题,我正在从一个网页上拉绳子,我已经刮了。

我试着把它简化为简单。我这样叫它。

代码语言:javascript
复制
var result = objToTest.parseDate("Friday, Sept 23, 2016 – 3pm - 8pm", "dddd, MMMM dd, yyyy");

我只需要实际日期,而不是下午3:00-8:00,因为我有处理它在其他地方,因为它是一个范围。

提前感谢

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-02-15 23:41:14

在编写答案时,所有内容都出现在注释中(出于某种原因),但这里有一个可以测试的工作版本:

代码语言:javascript
复制
var str = "Friday, Sept 23, 2016 – 3pm - 8pm";

var cultureInfo = new CultureInfo("en-US");
cultureInfo.DateTimeFormat.AbbreviatedMonthNames = new[] 
    { "Jan", "Feb", "Mar",
      "Apr", "May", "Jun",
      "Jul", "Aug", "Sept",
      "Oct", "Nov", "Dec", "" };

var result = DateTime.ParseExact(str.Split('–').First().Trim(), "dddd, MMM dd, yyyy", cultureInfo);
票数 2
EN

Stack Overflow用户

发布于 2016-02-16 00:36:07

你离我太近了!

问题是月份:MMMM用于拼写整个月名(September而不是Sept)。像Sept这样的缩写月份名称使用只有3M的MMM

代码语言:javascript
复制
dddd, MMM dd, yyyy

参考文献

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35420970

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档