我有大量的文件,如下所示:
5月31日/ 2012,15:30:00.029,1306.25,1,E,0,...,1306.25
5月31日/ 2012,15:30:00.029,1306.25,8,E,0,...,1306.25
我可以使用以下内容轻松阅读它们:
pd.read_csv(gzip.open("myfile.gz"), header=None,names=
["date","time","price","size","type","zero","empty","last"], parse_dates=[[0,1]])
Run Code Online (Sandbox Code Playgroud)
有没有办法有效地将这样的日期解析成熊猫时间戳?如果没有,是否有任何编写可以传递给date_parser =的cython函数的指南?
我尝试编写自己的解析器函数,但我正在处理的项目仍然需要很长时间.
我有一些数据必须格式化为(%d /%m /%Y).数据不按时间顺序排列,因为它按第一个数字排序,即第一个数字,而不是月份.
我希望我可以指定order或者reorder我希望排序以不同的方式发生.我只是不确定该怎么做.
以下是要订购的日期数据:
date
1/1/2009
1/1/2010
1/1/2011
5/4/2009
5/4/2011
10/2/2009
10/3/2011
15/9/2010
15/3/2009
31/12/2011
31/7/2009
Run Code Online (Sandbox Code Playgroud)
谢谢你的任何建议.
我需要将不完整的日期格式化为月精度.我的第一个猜测是应用模式"MMMM yyyy".这适用于许多语言环境(英语,德语,......),但对于有屈曲的语言(例如俄语)会产生难看的结果.我阅读了文档SimpleDateFormat并发现'L'应该给出上下文不敏感的月份名称:正是我需要的,因为模式中没有一个月的日期.所以我尝试了模式"LLLL yyyy".它适用于俄语和其他屈曲语言,但却失败了,例如英语和德语......
这是测试代码:
import java.text.*;
import java.util.*;
public class test
{
public static void main (String[] arguments) throws Exception
{
for (String locale : new String[] { "en", "de", "hu", "it", "ru", "fi", "pl" })
System.out.format ("%s: %s \t%s\n", locale,
new SimpleDateFormat ("MMMM yyyy", new Locale (locale)).format (new Date ()),
new SimpleDateFormat ("LLLL yyyy", new Locale (locale)).format (new Date ()));
}
}
Run Code Online (Sandbox Code Playgroud)
它的输出:
en: September 2015 0009 2015
de: September 2015 0009 2015
hu: szeptember 2015 …Run Code Online (Sandbox Code Playgroud) 我有一个链接到Oracle 12.1数据库的SQL Server 12.0数据库.
我想在SQL Server数据库中创建一个视图,该视图从按日期过滤的Oracle表中返回数据.Oracle表在日期列上有一个索引.
成功运行的查询是:
select * from ORADB..SCHEMA.MYTABLE where MYDATE >= '20140701';
Run Code Online (Sandbox Code Playgroud)
然而,这运行得非常缓慢.我假设这是因为比较发生在SQL Server中,所以每行都被返回.
如果我走:
DECLARE @earliest date = '20140701';
select * from ORADB..SCHEMA.MYTABLE where MYDATE >= @earliest;
Run Code Online (Sandbox Code Playgroud)
然后它运行得很快,大概是因为条件被传递给Oracle所以正在使用表上的Oracle索引.
我的问题是我想创建一个视图.我找不到使用第二版代码创建视图的方法.如果我只是这样做:
create myview as select * from ORADB..SCHEMA.MYTABLE where MYDATE >= '20140701';
Run Code Online (Sandbox Code Playgroud)
然后它运行缓慢.
是否有SQL Server将传递给Oracle的日期文字的另一种格式,还是有另一种解决方案?我还想知道它是否与创建Oracle链接时使用的参数有关.供参考,它们是:
USE [master]
GO
EXEC master.dbo.sp_addlinkedserver @server = N'ORADB', @srvproduct=N'Oracle', @provider=N'OraOLEDB.Oracle', @datasrc=N'DPDB'
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'ORADB',@useself=N'False',@locallogin=NULL,@rmtuser=N'MYUSER',@rmtpassword='#######'
GO
EXEC master.dbo.sp_serveroption @server=N'ORADB', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'ORADB', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'ORADB', @optname=N'dist', …Run Code Online (Sandbox Code Playgroud) 给定a FileTime fileTime,如何以自定义方式格式化为字符串?
String s = fileTime.toString() 仅以ISO格式提供.
String s = DateTimeFormatter.ofPattern("uuuu-MMM-dd HH:mm:ss")
.format(fileTime.toInstant());
Run Code Online (Sandbox Code Playgroud)
投 UnsupportedTemporalTypeException: Unsupported field: Year
我不想使用像 momentjs 这样的任何外部库,我想自己创建一个格式化的日期字符串。我尝试使用new Date().toISOString(),但它正在丢失时区。
这:
new Date()
Run Code Online (Sandbox Code Playgroud)
给出:
Sat Jun 24 2017 09:32:10 GMT+0300 (RTZ 2 (winter))
和:
new Date().toISOString();
Run Code Online (Sandbox Code Playgroud)
给出:
2017-06-24T06:32:22.990Z
并且09:32:10是正确的时间,因此06:32:22丢失了时区信息。
除此之外,它看起来new Date().toLocaleString()几乎满足了我的需要。最后几个小时是正确的。结果:"24.06.2017, 11:37:05"。
是否有任何标准(C,C++,POSIX,Linux ...)strftime可供选择
strftime如果缓冲区大小小于完全输出所需的,则截断输出(而不是像数据中那样保留数组内容).例如,snprintf接受strftime格式字符串的日期/时间格式的类似语义可以完美地完成.
像std::put_timeC++ 11和更高版本中的函数不是一个选项,因为它们可能会尝试动态分配额外的内存并可能抛出异常.
我有一个NSDate对象,我从中创建两个NSStrings:日期和时间.目前我将日期格式设置为20111031,时间格式为23:15.
我想要做的是将其格式化为设备(iPhone,iPad,iPod Touch)当前区域设置(不是语言!).例如:
我怎样才能做到这一点?
Oracle 11.2.0.3.0,APEX 4.1.1.00.23.
我们需要在我们的应用程序中显示数字,格式FM999999999990.000和日期格式为英文DD-MON-YYYY.
即使应用程序语言将要改变(法语,西班牙等),我们总是需要这种格式的数字(组分隔符没有空格或逗号,小数分隔符的点,即-1254.010)和日期(3)英文月份名称的第一个字母,即12-FEB-2012).
以下是我们正在使用的全球化属性(Application Builder - > Application - > Edit Globalization Attributes):
我无法让它按预期工作......我仍然得到数字-1254,01和日期12-FÉVR.-2012而不是-1254.010和12-FEB-2012.似乎APEX忽略任何改变会话的调用......
我试图在" 初始化PL/SQL代码 "属性(应用程序生成器 - >应用程序 - >编辑安全属性)中输入以下代码,但没有任何成功:
BEGIN
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS= ''.,'' ';
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_DATE_LANGUAGE = ''AMERICAN'' ';
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_LANGUAGE = …Run Code Online (Sandbox Code Playgroud) Intl.DateTimeFormat('en-US', {
weekday: 'long',
year: 'numeric',
month: 'long',
day: '2-digit',
hour: '2-digit',
minute: '2-digit',
second: '2-digit'
}).format(807959700000)
Run Code Online (Sandbox Code Playgroud)
我预计上面的调用会返回类似的东西,Wednesday, August 09, 1995, 04:15:00 AM但似乎缺少小时的前导零。我得到Wednesday, August 09, 1995, 4:15:00 AM
2-digit虽然它似乎适用于一个月中的某一天,但它并没有做到这一点。是否2-digit意味着超出我的预期,或者我做错了什么?
PS 我在 Chrome 控制台中对此进行了测试,其他地方都没有。
date-formatting ×10
java ×2
javascript ×2
c ×1
c++ ×1
ios ×1
java-time ×1
localization ×1
nls ×1
nsdate ×1
oracle ×1
oracle-apex ×1
pandas ×1
performance ×1
python ×1
r ×1
session ×1
sql ×1
sql-server ×1
strftime ×1