我想将这种格式的字符串"4/14/2013 1:04 PM"解析为DateTime对象.但实际上这不起作用,因为我收到类型'System.FormatException'的错误.如何解决问题并将我的DateTime字符串转换为DateTime对象?
谢谢.
我已经编写了以下查询来从实体创建一个xml,我需要以.NET yyyymmddhhmmss格式为该字段获取日期时间SLOTTINGTIME,所以我想到了编写一个新方法来获取所需格式的日期时间.
var slottingmessagexml = new XDocument(new XElement("Message",
new XAttribute("ID","SLT"),
new XElement("Record",
new XAttribute("STORENO",slottingmessage.StoreID),
new XAttribute("PICKLOCATION",slottingmessage.PickLocation),
new XAttribute("TPNB",slottingmessage.ProductID),
new XAttribute("SLOTTINGTIME",GetDateTimeInNewFormat(slottingmessage.SlottingDateTime)),
new XAttribute("SLOTTTINGACTION",slottingmessage.SlottingAction))
)
);
Run Code Online (Sandbox Code Playgroud) 我无法将字符串“ 2014年4月16日17:00”解析为字符串。我试图DateUtils在apachecommons图书馆中使用。这是测试代码,除了
package com.buraktas;
import java.text.ParseException;
import java.util.Date;
import org.apache.commons.lang3.time.DateUtils;
import org.junit.Test;
public class ParseDateTest {
@Test
public void test() throws ParseException {
String date = "18 Apr 2014 20:00";
Date parseDate = DateUtils.parseDate(date, "dd MMM yyyy HH:mm");
System.out.println(parseDate);
}
}
Run Code Online (Sandbox Code Playgroud)
和堆栈跟踪如下所示;
java.text.ParseException: Unable to parse the date: 18 Apr 2014 20:00
at org.apache.commons.lang3.time.DateUtils.parseDateWithLeniency(DateUtils.java:391)
at org.apache.commons.lang3.time.DateUtils.parseDate(DateUtils.java:291)
at org.apache.commons.lang3.time.DateUtils.parseDate(DateUtils.java:268)
at com.buraktas.ParseDateTest.test(ParseDateTest.java:15)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) …Run Code Online (Sandbox Code Playgroud) 我被告知我将以以下格式收到日期时间:
yyyy-mm-ddThh:mm:sss
Run Code Online (Sandbox Code Playgroud)
这来自一个Java Web服务,即使我试图得到最终三个"sss"的重点,它似乎是最终格式而不是拼写错误.
所以我试图使用.Net解析它(实际上是C#)
var s = "2014-09-16T12:17:057";
var d = DateTime.ParseExact(s, "yyyy-MM-ddThh:mm:sss", CultureInfo.InvariantCulture);
Run Code Online (Sandbox Code Playgroud)
但它提出了一个例外
Sting未被识别为有效的DateTime
谢谢,
更新:
怀疑,第三次魅力和我已经确认实际格式应该是
yyyy-MM-ddTHH:mm:ss
Run Code Online (Sandbox Code Playgroud) 我正在修改一些遗留代码,有这个......
DateTime dateTime = DateTime.Now;
DateTime from = DateTime.Parse(dateTime.ToString("dd/MM/yyyy 00:00:00"));
DateTime to = DateTime.Parse(dateTime.AddDays(8).ToString("dd/MM/yyyy 23:59:59"));
Run Code Online (Sandbox Code Playgroud)
然后,在Linq/Lambda比较中使用from和to变量,因此必须是DateTime.
我似乎无法找到一种方法来格式化DateTime变量而不将其转换为字符串,然后再返回到DateTime,这似乎至少可以说是愚蠢的.
当然必须有一种方法来格式化DateTime而不将其转换为字符串,然后再转换回DateTime?
我可以将YYYYMMDD格式的字符串值转换为人类友好的字符串,如下所示:
string beginDate = GetElement(3, fileBaseName);
string endDate = GetElement(4, fileBaseName);
beginDate = DateTime.ParseExact(beginDate,
"yyyyMMdd",
CultureInfo.InvariantCulture).ToShortDateString();
endDate = DateTime.ParseExact(endDate,
"yyyyMMdd",
CultureInfo.InvariantCulture).ToShortDateString();
return string.Format("{0} to {1}", beginDate, endDate);
Run Code Online (Sandbox Code Playgroud)
但是如上所述使用ToShortDateString(),我得到了不那么友好的格式" 2016年4月1日到2016年4月30日 "
当我尝试ToLongDateString()时,它走向另一个方向太远,将数字扩展为月份名称(我想要的),但也提供一周中某一天的长形式,以便相同的值显示为" 星期五" 2016年4月1日至2016年4月30日(星期六) "
我真正想要的是将日期范围显示为" 2016年4月1日至2016年4月30日 "(或" 2016年4月1日至2016年4月30日 ")
我可以使用ToShortDateString()和ToLongDateString()之间的中间地带,还是需要"自己滚动"才能得到它?
我用php(laravel)向我的数据库发出请求,它返回一个日期对象,如下所示:
"lastMessageDate" : {
"date" : "2016-06-06 23:37:32.000000",
"timezone" : "UTC",
"timezone_type" : 3
}
Run Code Online (Sandbox Code Playgroud)
如何在swift中将此对象转换为iPhone的本地日期和时间?
谢谢.
我真的很困惑.我想做的事情(看起来很简单)是在TDateTimePicker中显示日期+时间,并集成日历,并且能够在其值发生变化后读取它.
我想使用dd/MM/yyyy hh:mm格式.
由于TDateTimePicker不是TDateOrTimePicker,因此使用的是:
看起来很好,现在让我们读一读:
showmessage(DateTimeToStr(DateTimePicker1.Date));
Run Code Online (Sandbox Code Playgroud)
仅正确显示日期.不考虑hh:mm部分的变化.我总是得到默认值.然后我想:还有一个Time属性,也许我需要读取2次的值.
showmessage(DateTimeToStr(DateTimePicker1.Time));
showmessage(DateTimeToStr(DateTimePicker1.Date));
Run Code Online (Sandbox Code Playgroud)
但我有与以前完全相同的输出(和问题).所以现在,让我们尝试将此Kind属性更改为dtkTime,然后读取时间,然后将其切换回dtkDate,然后读取日期.
但不,它仍然无效.将Kind属性从dtkDate切换到dtkTime会删除hh:mm部分的输入.
我知道我实际上应该使用2个TDateTimePickers:一个用于日期,一个用于时间.
所以我的问题是:
还有一个Delphi设计问题:
请注意,我发布这个问题主要是为了避免初学者做同样的调试和挫折的过程.
我在Python 3.6中解析日期时间字符串时遇到了一些麻烦.关键代码是:
datetime.datetime.strptime("Jan 08, 2018 07:04 PM UTC", '%b %d, %Y %I:%M %p %Z')
Run Code Online (Sandbox Code Playgroud)
和堆栈跟踪:
File "marquito.py", line 180, in start
test_date = "" if test_date == "" else datetime.datetime.strptime(test_date + " UTC", "%b %d, %Y %I:%M %p %Z")
File "/usr/lib/python3.6/_strptime.py", line 565, in _strptime_datetime
tt, fraction = _strptime(data_string, format)
File "/usr/lib/python3.6/_strptime.py", line 362, in _strptime
(data_string, format))
ValueError: time data 'Jan 08, 2018 07:04 PM UTC' does not match format '%b %d, %Y %I:%M %p %Z'
Run Code Online (Sandbox Code Playgroud)
你看到代码有什么问题吗?
我有一列(非索引列),里面有日期时间。例如,前五个条目如下所示:
[Timestamp('2018-11-15 19:57:55'),
Timestamp('2018-11-15 19:59:46'),
Timestamp('2018-11-15 20:00:59'),
Timestamp('2018-11-15 20:01:41'),
Timestamp('2018-11-15 20:01:54')]
Run Code Online (Sandbox Code Playgroud)
我想将条目从UTC转换为太平洋时区。假设该列被称为,times我目前正在执行以下操作:
times.dt.tz_localize('GMT').dt.tz_convert('America/Los_Angeles')
尽管此操作成功将列从UTC转换为PST,但输出中包含我不需要的无关组件。看起来如下:
[Timestamp('2018-11-15 11:57:55-0800', tz='America/Los_Angeles'),
Timestamp('2018-11-15 11:59:46-0800', tz='America/Los_Angeles'),
Timestamp('2018-11-15 12:00:59-0800', tz='America/Los_Angeles'),
Timestamp('2018-11-15 12:01:41-0800', tz='America/Los_Angeles'),
Timestamp('2018-11-15 12:01:54-0800', tz='America/Los_Angeles')]
Run Code Online (Sandbox Code Playgroud)
如何-0800从时间戳中删除或忽略?谢谢!
datetime-format ×10
c# ×4
datetime ×4
python ×2
c#-4.0 ×1
date ×1
delphi ×1
delphi-xe7 ×1
java ×1
pandas ×1
python-3.x ×1
swift ×1
timestamp ×1