[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

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

本帖最后由 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


谢谢

Very Good   感谢先进指导

TOP

回复 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
复制代码
梦依旧在,只是,心有余而力渐有不足
年年岁岁花相似,岁岁年年人不同

TOP

本帖最后由 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

评分人数

TOP

回复 7# Batcher


    明白了
Fit Strong

TOP

已解决   谢谢大家

TOP

回复 2# Fit


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

评分人数

我帮忙写的代码不需要付钱。如果一定要给,请在微信群或QQ群发给大家吧。
【微信公众号、微信群、QQ群】http://bbs.bathome.net/thread-3473-1-1.html
【支持批处理之家,加入VIP会员!】http://bbs.bathome.net/thread-67716-1-1.html

TOP

  1. 2021/11/1,00:35
复制代码
减去12小时,日期应该改变
  1. 2021/10/31,12:35
复制代码
微信:flashercs
QQ:49908356

TOP

echo语句后面加>>2.TXT

TOP

echo语句后面加>>2.TXT

TOP

您好谢谢您答复

显示所看到的数据都正确   能否写出成文本 2.txt

TOP

@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

评分人数

    • KLL: 感谢给帖子标题标注[已解决]字样技术 + 1
Fit Strong

TOP

返回列表