我有一个包含字符串的变量,该字符串对应于日期和时间,我试图将字符串转换为DateTime对象.日期的变量newTime与以下格式相关 - MM/dd/yy hh:mm:ss但是我遇到了麻烦,因为我一直收到错误;
该字符串未被识别为有效的DateTime.
以下是该方法的代码:
public static DateTime ConvertToDateTime(string newTime)
{
//newTime = "06/25/18 21:56:43"
return DateTime.ParseExact(newTime, "MM/dd/yy hh:mm:ss", CultureInfo.InvariantCulture);
}
Run Code Online (Sandbox Code Playgroud) 我需要从数据库的“ datetime”列中提取月份,并将其放在每一行的单独列中。我尝试了下面的代码以及许多其他代码。
df3['DatumTijdOverlijden'] = pd.to_datetime(df3['DatumTijdOverlijden'],
format='"%Y-%m-%d %H:%M:%S"')
for x in df3['DatumTijdOverlijden']:
a = 'DatumTijdOverlijden'
datee = datetime.datetime.strptime(a, "%Y-%m-%d %H:%M:%S)
df3.set_value(y, 'Month', datee)
y+=1
Run Code Online (Sandbox Code Playgroud) 我有以下日期范围:
begin: 2018-02-15
end: 2018-04-23
Run Code Online (Sandbox Code Playgroud)
我要实现以下目标:
["2018-02-15 - 2018-02-28", "2018-03-01 - 2018-03-31", "2018-04-01 - 2018-04-23"]
Run Code Online (Sandbox Code Playgroud)
本质上,我想将给定的日期范围划分为几个月。我想不出一种在Python中完成此操作的方法。
我在这里考虑了解决方案,但是,这会根据指定的时间间隔拆分日期范围。我希望能够动态分割日期范围。
因此,鉴于日期范围为2018年2月15日至2018年4月23日,我希望能够获得该范围内的各个月份,如下所示:
有人可以告诉我如何将x天数添加到Nifi格式(“ yyyy-MM-dd”)的日期属性中。
我试图将DateTime从C#解析为Java.这是来自java调用的字符串"2018-08-02T14:24:40.040353".当我尝试解析它时,我收到以下错误Unparseable date: "2018-08-02T14:24:40.040353"
这是解析日期的方法
public static String dateFormater(String dateFromJSON, String
expectedFormat, String oldFormat) {
SimpleDateFormat dateFormat = new SimpleDateFormat(oldFormat);
Date date = null;
String convertedDate = null;
try {
date = dateFormat.parse(dateFromJSON);
SimpleDateFormat simpleDateFormat = new
SimpleDateFormat(expectedFormat);
convertedDate = simpleDateFormat.format(date);
} catch (Exception e) {
e.printStackTrace();
}
return convertedDate;
}
Run Code Online (Sandbox Code Playgroud) 我是单元测试的新手,我想就这个主题提供一些指导.该函数验证日期时间是否为首先是字符串,如果是,则验证它是否是正确的ISO格式.
if not isinstance(timestamp,str):
raise ValueError("timestamp must be a string")
try:
datetime.strptime(timestamp, '%Y-%m-%dT%H:%M:%S')
return True
except ValueError:
return True
Run Code Online (Sandbox Code Playgroud)
如何确定单元测试中包含哪些内容以及我应该注意什么?
import re
exp1="2018-7-12 13:00:00"
exp2="13:00:00 2018-7-12"
reg= r'\d\d\d\d[./-](0?[1-9]|1[0-2])[./-](0?[1-9]|[12][0-9]|3[01]) (00|[0- 9]|1[0-9]|2[0-3]):([0-9]|[0-5][0-9]):([0-9]|[0-5][0-9])'
compDate = re.search(reg,exp1)
Run Code Online (Sandbox Code Playgroud)
我也尝试了先行表达式,但他们没有让它们工作.
欢迎任何其他解决方案
我在Uninstalls注册表项中有一个程序,奇怪的日期/时间.报告的值为"1533407816",但实际日期很可能是"20180804",这是当天安装的所有其他Autodesk产品的报告.我正在使用[datetime]::ParseExact($program.GetValue('InstallDate'),'yyyyMMdd',$null)将这些日期转换为正确的DateTime,但不确定我需要什么机制来进行奇怪的日期.或者,如果它甚至是有意义的数据.
我有一些数据,我从API中提取,日期格式如下:'1522454400000'
不知道如何解析它,但这就是我所拥有的(尝试失败)
df = DataFrame(test)
df.columns = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume']
df.set_index('Date')
df.index = pd.to_datetime(df.index, unit = 'd')
Run Code Online (Sandbox Code Playgroud)
其中变量test是基础数据的列表.这不正确地解析了1970年的数据.
解析的结果:
1970-01-01 00:00:00.000000000
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
**********************编辑************************************
Python版本:3
熊猫版.0.23.0
这是一个可重复性的工作示例.但首先,这是我发现的事实.
日期格式:自1970年1月1日以来的64位Unix时间戳,以毫秒为单位
TIMEZONE:UTC
我的时区:UTC + 4(所需的日期时间指数)
代码:
import bitmex
import pandas as pd
from pandas import DataFrame
import datetime
import ccxt
api_connector = ccxt.bitmex({
'enableRateLimit': True
})
#get OHLCV Data
testdata = api_connector.fetch_ohlcv('XBTZ18', '1h')
df2 = DataFrame(testdata)
df2.columns = ['Date', 'Open', 'High', 'Low', 'Close', 'Volume']
#df2.set_index('Date')
df2.index = pd.to_datetime(df2.Date, unit='ms') …Run Code Online (Sandbox Code Playgroud) 我有一个程序,我将两个日期相互比较; 即使date1以前date2,也date1.after(date2)回来了true.时区没有效果; 这两个日期都是UTC.
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.TimeZone;
public class Test {
public static void main(String[] args) throws Exception {
TimeZone.setDefault(TimeZone.getTimeZone("Etc/UTC"));
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss.SSS");
Date date1 = dateFormat.parse("2018-07-27 01:22:14.077");
Date date2 = new Timestamp(1532654534390l);
System.out.println(dateFormat.format(date1));
System.out.println(dateFormat.format(date2));
System.out.println(date1.getTime() > date2.getTime());
System.out.println(date1.after(date2));
}
}
Run Code Online (Sandbox Code Playgroud)
这输出:
2018-07-27 01:22:14.077
2018-07-27 01:22:14.390
false
true
这里发生了什么?
在我的真实程序中,date1从日志文件中解析date2并由Hibernate从数据库中检索,这会导致不同的数据类型.即使我找到了根本原因并知道如何避免这个问题,我仍然对防止这个陷阱的解决方案非常感兴趣.
datetime ×10
python ×5
date ×2
java ×2
pandas ×2
apache-nifi ×1
c# ×1
ccxt ×1
date-format ×1
exception ×1
jdbc ×1
parsing ×1
powershell ×1
python-3.x ×1
regex ×1
registry ×1
series ×1
string ×1
unit-testing ×1