找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 22716|回复: 11

[文本处理] [已解决]请教批处理, 如何将文本数据 ,美东时间制改为北京时间制

[复制链接]
发表于 2021-11-13 11:21:45 | 显示全部楼层 |阅读模式
本帖最后由 KLL 于 2021-11-25 15:45 编辑

请教批处理, 如何将文本数据 ,美东时间制改为北京时间制
时差整好12小时

文本格式如下
2021/10/26,19:10,35684,35684,35664,35666,154,0
2021/10/27,22:15,35438,35438,35428,35431,79,0
2021/10/29,12:20,35597,35605,35571,35582,2225,0
2021/11/1,00:35,35782,35789,35782,35787,109,0
2021/11/2,03:40,35795,35802,35788,35788,238,0

19:10  改为  07:10
22:15  改为  10:15
12:20  改为  00:20
00:35  改为  12:35
03:40  改为  15:40


谢谢
发表于 2021-11-13 11:52:57 | 显示全部楼层
@echo off&setlocal enabledelayedexpansion
for /f "tokens=1,2,* delims=," %%i in (1.txt) do (
        set mt=%%j
        set mmt=%%j
        set mt=!mt:~0,2!
        set mmt=!mmt:~2,3!
        set /a var=!mt!
        if !var! lss 12 (set /a var+=12)else (set /a var-=12)
        if !var! lss 10 (echo %%i,0!var!!mmt!,%%k)else (echo %%i,!var!!mmt!,%%k)
)
pause

评分

参与人数 1技术 +1 收起 理由
KLL + 1 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2021-11-13 12:40:40 | 显示全部楼层
您好谢谢您答复

显示所看到的数据都正确   能否写出成文本 2.txt
发表于 2021-11-13 12:56:59 | 显示全部楼层
echo语句后面加>>2.TXT
发表于 2021-11-13 12:57:22 | 显示全部楼层
echo语句后面加>>2.TXT
发表于 2021-11-13 12:58:15 | 显示全部楼层
  1. 2021/11/1,00:35
复制代码
减去12小时,日期应该改变
  1. 2021/10/31,12:35
复制代码
发表于 2021-11-13 12:59:13 | 显示全部楼层
回复 2# Fit


    猜测还是需要考虑跨天、夸月、跨年、闰年等情况

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

 楼主| 发表于 2021-11-13 13:38:44 | 显示全部楼层
已解决   谢谢大家
发表于 2021-11-13 14:13:51 | 显示全部楼层
回复 7# Batcher


    明白了
发表于 2021-11-13 17:51:52 | 显示全部楼层
本帖最后由 idwma 于 2021-11-13 18:04 编辑

另一种偷懒的方式
  1. @echo off
  2. for /f "tokens=1,2,* delims=," %%i in (1.txt) do (
  3. for /f "delims=" %%a in ('powershell "'{0:yyyy/MM/d,HH:mm}' -f [System.TimeZoneInfo]::ConvertTimeBySystemTimeZoneId([DateTime]::Parse('%%i %%j:00'), 'Eastern Standard Time', 'China Standard Time')"') do (
  4. echo %%a,%%k
  5. )
  6. )
  7. pause
复制代码

评分

参与人数 1技术 +1 收起 理由
codegay + 1 1

查看全部评分

发表于 2021-11-14 18:07:19 | 显示全部楼层
回复 3# KLL


    加速+输出2.txt

  1. @echo off&setlocal enabledelayedexpansion
  2. (for /f "tokens=1,2,* delims=," %%i in (1.txt) do (
  3.         set mt=%%j
  4.         set mmt=%%j
  5.         set mt=!mt:~0,2!
  6.         set mmt=!mmt:~2,3!
  7.         set /a var=!mt!
  8.         if !var! lss 12 (set /a var+=12)else (set /a var-=12)
  9.         if !var! lss 10 (echo %%i,0!var!!mmt!,%%k)else (echo %%i,!var!!mmt!,%%k)
  10. ))>2.txt
  11. pause
复制代码
 楼主| 发表于 2021-11-22 00:35:17 | 显示全部楼层
Very Good   感谢先进指导
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 19:14 , Processed in 0.034794 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表