标签: date-formatting

使用datetime索引对大熊猫read_csv进行速度提升

我有大量的文件,如下所示:

5月31日/ 2012,15:30:00.029,130​​6.25,1,E,0,...,1306.25

5月31日/ 2012,15:30:00.029,130​​6.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函数的指南?

我尝试编写自己的解析器函数,但我正在处理的项目仍然需要很长时间.

python performance date-formatting pandas

8
推荐指数
2
解决办法
7674
查看次数

按时间顺序排序数据框,格式为%d /%m /%Y的日期

我有一些数据必须格式化为(%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)

谢谢你的任何建议.

r date-formatting

8
推荐指数
2
解决办法
2万
查看次数

Java日期格式的月份名称的独立形式

我需要将不完整的日期格式化为月精度.我的第一个猜测是应用模式"MMMM yyyy".这适用于许多语言环境(英语,德语,......),但对于有屈曲的语言(例如俄语)会产生难看的结果.我阅读了文档SimpleDateFormat并发现'L'应该给出上下文不敏感的月份名称:正是我需要的,因为模式中没有一个月的日期.所以我尝试了模式"LLLL y​​yyy".它适用于俄语和其他屈曲语言,但却失败了,例如英语和德语......

这是测试代码:

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)

java date-formatting

8
推荐指数
1
解决办法
2265
查看次数

从链接到Oracle的SQL Server编写SQL查询时,如何指定日期文字?

我有一个链接到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)

sql sql-server oracle date-formatting

8
推荐指数
3
解决办法
2万
查看次数

如何自定义格式化FileTime

给定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

java date-formatting java-time

8
推荐指数
2
解决办法
1990
查看次数

为什么 new Date().toISOString() 会丢失时区?

我不想使用像 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"

javascript date-formatting

8
推荐指数
1
解决办法
1万
查看次数

合理的snprintf替代strftime?

是否有任何标准(C,C++,POSIX,Linux ...)strftime可供选择

  1. 计算给定格式和时间的字符串缓冲区所需的大小,
  2. strftime如果缓冲区大小小于完全输出所需的,则截断输出(而不是像数据中那样保留数组内容).

例如,snprintf接受strftime格式字符串的日期/时间格式的类似语义可以完美地完成.

std::put_timeC++ 11和更高版本中的函数不是一个选项,因为它们可能会尝试动态分配额外的内存并可能抛出异常.

c c++ strftime date-formatting

8
推荐指数
1
解决办法
401
查看次数

设备当前区域设置后的格式化日期和时间

我有一个NSDate对象,我从中创建两个NSStrings:日期和时间.目前我将日期格式设置为20111031,时间格式为23:15.

我想要做的是将其格式化为设备(iPhone,iPad,iPod Touch)当前区域设置(不是语言!).例如:

  • 设置为美国地区的设备将显示(从我的头顶)10.31.11和时间晚上11:15
  • 设置为荷兰地区的设备将显示:2011年10月31日和时间23.15
  • 设置为瑞典地区的设备将显示:2001-10-31和时间23:15

我怎样才能做到这一点?

localization nsdate date-formatting ios

7
推荐指数
2
解决办法
2万
查看次数

数字和日期格式:更改NLS_SESSION_PARAMETER不起作用?

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):

  • 应用小学语言:法语(法国)(fr)
  • 应用程序语言派生自:Session
  • 申请日期格式:DD-MON-YYYY

我无法让它按预期工作......我仍然得到数字-1254,01和日期12-FÉVR.-2012而不是-1254.01012-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)

session nls number-formatting date-formatting oracle-apex

7
推荐指数
1
解决办法
3万
查看次数

Intl.DateTimeFormat 选项哈希:使用“2-digit”获取前导零

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 控制台中对此进行了测试,其他地方都没有。

javascript date-formatting

7
推荐指数
2
解决办法
5725
查看次数