ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
查看: 423|回复: 5

ExtendedProperty("System.Photo.DateTaken")结果相差8小时.

[复制链接]

TA的精华主题

TA的得分主题

发表于 2023-6-27 11:23 | 显示全部楼层 |阅读模式
d.jpg


Debug.Print .ExtendedProperty("System.Photo.DateTaken")与目标结果相差8小时.


问在那里能找到时差的设置.

  1. Private Sub dell11()
  2.    
  3.    
  4.    Dim oSh As Shell32.Shell
  5.    Dim ImgName
  6.    Dim oFolder As Shell32.Folder
  7.        Set oSh = New Shell32.Shell

  8.    Dim FolderIt As ShellFolderItem
  9.    Dim Str
  10.    Dim oDir
  11.    Dim oDate As Date
  12.        oDir = "F:"
  13.       
  14.       
  15.        ImgName = "F:\4.jpg"
  16.        ImgName = "4.jpg"
  17.        Set oFolder = oSh.Namespace(oDir)
  18.        Set tmpFile = oFolder.ParseName(ImgName)
  19.        Str = oFolder.GetDetailsOf(tmpFile, 12)
  20.        Str = Replace(Str, ChrW(8206), "")
  21.        Str = Replace(Str, ChrW(8207), "")
  22.        Debug.Print Str
  23.       
  24.        Set FolderIt = oSh.Namespace(oDir).ParseName(ImgName)
  25.        With FolderIt
  26.           Debug.Print .ExtendedProperty("System.Photo.DateTaken")
  27.           Debug.Print .ModifyDate
  28.        End With
  29.       
  30.        'Debug.Print oDate
  31.    Dim Fso As FileSystemObject, tFile As File
  32.        Set Fso = New FileSystemObject
  33.        Set tFile = Fso.GetFile("F:\4.jpg")
  34.        With tFile
  35.            Debug.Print .DateCreated, .DateLastAccessed, .DateLastModified
  36.        End With
  37.    Dim Img As WIA.ImageFile
  38.        Set Img = New WIA.ImageFile
  39.        Img.LoadFile "F:\4.jpg"
  40.        With Img
  41.             aa = Split(.Properties(4), " ")
  42.             Str = Replace(aa(0), ":", "/") & " " & aa(1)
  43.             oDate = Str
  44.             Debug.Print Str
  45.        End With

  46. End Sub
复制代码


TA的精华主题

TA的得分主题

发表于 2023-6-27 11:48 来自手机 | 显示全部楼层
这个是0时区时间(GMT格林尼治时间),可以用htmlfile对象里的new Date()识别这个时间然后转本地时间字符串,再转vba里的date对象

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2023-6-27 11:49 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2023-6-27 17:31 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wanghan519 发表于 2023-6-27 11:48
这个是0时区时间(GMT格林尼治时间),可以用htmlfile对象里的new Date()识别这个时间然后转本地时间字符串 ...

谢谢解答.

GMT时间怎么换算成北京时间-百度经验  https://jingyan.baidu.com/article/948f5924c6d9b5990ef5f954.html

GMT指的是格林威治中央区时,北京位于东八区,也就是北京的地方时比中央时区的地方时早8小时。GMT-4:00表示比中央区时晚小时,也就是说这个地方在中央时区以西,西四区。

UTC + 时区差 = 本地时间

TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-11 11:24 | 显示全部楼层
继续学习以前的知识

关键语句
GetDetailsOf
Namespace
ParseName

  1. Private Sub dell11()
  2.    
  3.    
  4.    Dim oSh As Shell32.Shell
  5.    Dim ImgName
  6.    Dim oFolder As Shell32.Folder
  7.        Set oSh = New Shell32.Shell

  8.    Dim FolderIt As ShellFolderItem
  9.    Dim Str
  10.    Dim oDir
  11.    Dim oDate As Date
  12.    Dim tmpFile
  13.        oDir = "C:"
  14.       
  15.       
  16.        'ImgName = "F:\4.jpg"
  17.        ImgName = "2.jpg"
  18.        ImgName = "Screenshot_2024-04-11-08-42-04-258_com.baidu.BaiduMap.jpg"
  19.        ImgName = "IMG_20240411_083434645.jpg"
  20.        Set oFolder = oSh.Namespace(oDir)
  21.        Set tmpFile = oFolder.ParseName(ImgName)
  22.        For ii = 1 To 20
  23.            Debug.Print ii, oFolder.GetDetailsOf(tmpFile, ii)
  24.        Next ii
  25.        Stop
  26.        Str = oFolder.GetDetailsOf(tmpFile, 3)
  27.        Stop
  28.        Debug.Print tmpFile.ModifyDate

  29. End Sub
复制代码




1            大小
2            项目类型
3            修改日期
4            创建日期
5            访问日期
6            属性
7            脱机状态
8            脱机可用性
9            假设的类型
10           所有者
11           种类
12           拍摄日期
13           参与创作的艺术家
14           唱片集
15           年
16           流派
17           指挥者
18           标记
19           分级
20           作者


TA的精华主题

TA的得分主题

 楼主| 发表于 2024-4-18 11:24 | 显示全部楼层
ning84 发表于 2024-4-11 11:24
继续学习以前的知识

关键语句

复习复习再复习,一点一点理解。






image.png


  1. Private Sub deldeldeldel()
  2.    Dim Sht As Worksheet, Rng As Range
  3.    Dim Rr, Kk As Integer
  4.        Set Rng = Selection
  5.        Set Sht = Rng.Parent
  6.        With Sht.Cells
  7.            .Clear
  8.            .Font.Size = 9
  9.        End With
  10.        Rr = 10
  11.    
  12.    Dim oSh As Shell32.Shell
  13.    Dim Img, ImgName
  14.    Dim tFolder As Shell32.Folder
  15.        Set oSh = New Shell32.Shell
  16.    
  17.    Dim oDir, tFile
  18.    Dim oDate As Date
  19.    
  20.    
  21.     Dim Fso As FileSystemObject
  22.         Set Fso = New FileSystemObject
  23.     Dim oFolder As Folder, oFile As File
  24.          Set oFolder = Fso.GetFolder(ThisWorkbook.Path)
  25.          Debug.Print oFolder.Name
  26.          For Each oFile In oFolder.Files
  27.               If UCase(oFile.Name) Like "IMG*" Then
  28.                 oDir = oFile.Path
  29.                 oDir = Left(oDir, InStrRev(oDir, ""))
  30.                 Set tFolder = oSh.Namespace(oDir)
  31.                 Set Img = tFolder.ParseName(oFile.Name)
  32.                 Debug.Print oFile.Name, oFile.DateLastModified, Img.ModifyDate
  33.                 Debug.Print "-----------"
  34.                 Debug.Print tFolder.GetDetailsOf(ImgName, 12), tFolder.GetDetailsOf(Img, 3)
  35.                 oDate = Img.ExtendedProperty("System.Photo.DateTaken")
  36.                 Debug.Print CDate(oDate) + #8:00:00 AM#
  37.                 Sht.Cells(Rr + Kk, 2) = oFile.Name
  38.                 Sht.Cells(Rr + Kk, 3) = oFile.DateLastModified
  39.                 Sht.Cells(Rr + Kk, 4) = CDate(oDate) + #8:00:00 AM#
  40.                
  41.                 Kk = Kk + 1
  42.               End If
  43.          Next oFile
  44.    
  45. End Sub
复制代码






您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-17 15:49 , Processed in 0.040538 second(s), 14 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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