如何在nodejs-polars中使用strftime格式化日期?
在nodejs-polars中使用strftime格式化日期
在nodejs-polars里,对Datetime类型的字面量或列进行格式化,需要通过str命名空间调用strftime()方法,以下是具体实现方式:
针对单个Datetime字面量的格式化
结合你提供的代码,只需在startOfYesterday后链式调用.str.strftime(),传入指定的格式字符串即可:
import pl from 'nodejs-polars'; const yesterday = new Date(Date.now()); yesterday.setDate(yesterday.getDate() - 1); const startOfYesterday = pl.lit(yesterday).cast(pl.Datetime('ms')); // 调用strftime格式化,这里用'%Y-%m-%d %H:%M:%S'作为示例格式 const formattedDate = startOfYesterday.str.strftime('%Y-%m-%d %H:%M:%S'); console.log(formattedDate);
执行后会输出格式化后的字符串,比如:
2024-09-11 00:19:59
针对DataFrame中Datetime列的格式化
如果是处理DataFrame里的日期列,方法类似:
import pl from 'nodejs-polars'; const yesterday = new Date(Date.now()); yesterday.setDate(yesterday.getDate() - 1); const df = pl.DataFrame({ raw_date: [new Date(), yesterday] }).withColumn(pl.col('raw_date').cast(pl.Datetime('ms'))); // 新增格式化后的日期列 const formattedDf = df.withColumn( pl.col('raw_date').str.strftime('%Y-%m-%d').alias('formatted_date') ); console.log(formattedDf);
格式字符串说明
格式规则和标准strftime一致,常用的占位符包括:
%Y:4位年份(如2024)%m:两位月份(如09)%d:两位日期(如11)%H:24小时制小时(如00)%M:两位分钟(如19)%S:两位秒数(如59)%f:毫秒数(如059)
注意:必须确保目标数据是Datetime类型(你已经通过cast(pl.Datetime('ms'))完成了类型转换,这一步是必要前提)。
内容的提问来源于stack exchange,提问作者Mikko Ohtamaa
相关产品推荐
相关产品推荐

